练35.3 大大大 怎么做??? 错误一

#include<bits/stdc++.h>
using namespace std;
int main(){
    long double a;
    cin>>a;
    do{
        a*=10;
    }
    while(a!=int(a));
    cout<<int(a);
    return 0;
}

错误二

#include<bits/stdc++.h>
using namespace std;
int main(){
    long double a;
    cin>>a;
    int s=1;
    do{
        s*=10;
        a*=s;
    }
    while(a!=(int)a);
    cout<<(int)a;
    return 0;
}

错误三

#include<bits/stdc++.h>
using namespace std;
int main(){
    double a;
    cin>>a;
    while(a-int(a)!=0){
        a*=10;
    }
    cout<<a;
    return 0;
}

错误四

#include<bits/stdc++.h>
using namespace std;
int main(){
    double a;
    cin>>a;
    while(a!=0){
        a*=10;
        cout<<int(a);
        a-=int(a);
    }
    return 0;
}

错误五

#include<bits/stdc++.h>
using namespace std;
int main(){
    long double x,y;
    cin>>x;
    int s=1;
    do{
        s*=10;
        y=x*s;
    }
    while(y!=(int)y);
    cout<<(int)y;
    return 0;
}

本题应该怎么做呢? 快来帮帮我呀!!!

3 条评论

  • @ 2025-12-8 20:38:12

    hello

    • @ 2025-7-16 21:55:46
      #include<bits/stdc++.h>
      using namespace std;
      int main(){
          string a,b;
          cin>>a;
          int n=a.find(".");
          if(n==1&&a[0]=='0') b=a.substr(2,a.size());
          else b=a.erase(n,1);
          while(b[0]=='0')b=b.erase(0,1);
          cout<<b;
      return 0;
      }
      
      • @ 2025-7-16 21:51:41

        你有没有想过用字符串来做,因为这道题有可能超过double的精度

        • 1

        信息

        ID
        129
        时间
        1000ms
        内存
        256MiB
        难度
        9
        标签
        递交数
        21
        已通过
        2
        上传者