unknow_anyway 2022-04-27 10:48 采纳率: 25%
浏览 28

在VS上可以正确输出 但ACM网站上会显示Time Limited Exceed

原问题

img

img


源代码
#include
#include<math.h>
using namespace std;
#define P 100
int main()
{
int N, M;
int item;
long sum[P];
int j = 0;
int count;
while(cin>>M)
{
if (M < 0)
break;
cin >> N;
if (N > pow(2,31))
break;
j++;
sum[j] = 0;
for (int i = 1; i <= N; i++)
{
item = M / i;
sum[j] += item;
}
count = j;
}
if (j > 0)
{
for (j = 1; j <= count; j++)
cout << sum[j] << endl;
}
return 0;
}

  • 写回答

1条回答 默认 最新

  • 浪客 2022-04-27 11:46
    关注

    超时了。

    #include <iostream>
    #include<math.h>
    using namespace std;
    //#define P 100
    int main()
    {
        int N, M;
        //int item;
        long sum;    //long sum[P];
        
        //int j = 0;
        //int count=0;
        int max=(int)pow(2,31); //pow只算一次
        int i;
        while(cin>>M)
        {
            if (M < 0)
                break;
            cin >> N;
            if (N > max)
                break;
    
            sum=0;//sum[count] = 0;
            for (i = 1; i <= N; i++)
            {
                //item = M / i;
                sum+= M / i;//sum[count] += item;
            }
            //count++;
            //cout << sum[count] << endl;
            cout << sum << endl;
        }
        // if (count > 0)
        // {
        //     for (i = 0; i < count; i++)
        //         cout << sum[i] << endl;
        // }
        return 0;
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 4月27日