今天做A0079. 级数求和 在洛谷AC了 image 但是 在挖土机是90分!!! image 为啥?

4 条评论

  • @ 2024-7-18 8:32:09
    #include <iostream>
    using namespace std ;
    int main()
    {
        int k , n = 1 ;
        // int sum = 0 ;//sum要设置成double!
        double sum = 0 ;
        cin >> k ;
        for(int i=0 ;i<n ; i++)
        {
            sum = sum + 1.0/n ;//1.0的用处?
            if(sum>k)
            {
                break ;
            }
            n++ ;
        }
        cout << n ;
    }```、
    `可以这么做
    ``
    
    • @ 2024-6-14 23:01:25

      因为挖土机这题数据强度更高,你不该在使用 double 存储答案时用默认形式输出。

      • @ 2024-6-14 14:31:42

        菜就多练

        • @ 2024-6-14 14:30:04

          菜就多练

          #include<bits/stdc++.h> 
          using namespace std;
          int main(){
          	int k;
          	long double sum=0,ans=0;
          	cin>>k;
          	while(sum<=k){
          		ans++;
          		sum+=1/ans;
          	}
          	cout<<ans;
          	return 0;
          }
          
          • @ 2024-6-14 14:30:51

            我*********

          • @ 2024-6-23 11:16:46

            菜就多练

            不用 long double 也能做,只不过行数多一点而已

            #include  <bits/stdc++.h>
            using namespace std;
            
            int main(){
            	int n=1;
                double sum=1.0,k;
                cin>>k;
                for(double i=2.0;sum<=k;i++){
                    if(sum>k){
                        break;
                    }
                    else{
                        sum+=1/i;
                        n++;
                    }
                }
                cout<<n;
            }
            
        • 1