我的Line 2在電腦上跑是正確的50
但在資測上跑卻變294
跪求版友指正
#include <stdio.h>
#include <math.h>
int main()
{
int t;
scanf("%d", &t);
int a[t][2];
for(int i = 0; i < t; i++)
for(int j = 0; j < 2; j++)
scanf("%d", &a[i][j]);
for(int i = 0; i < t; i++) {
int sum = 0;
for(int j = a[i][0]; j <= a[i][1]; j++)
if(sqrt(j)*sqrt(j) == j)
sum += j;
printf("Case %d: %d\n", i+1, sum);
}
return 0;
}
我的Line 2在電腦上跑是正確的50
但在資測上跑卻變294
跪求版友指正
#include
#include
int main()
{
int t;
scanf("%d", &t);
int a[t][2];
for(int i = 0; i < t; i++)
for(int j = 0; j < 2; j++)
scanf("%d", &a[i][j]);
for(int i = 0; i < t; i++) {
int sum = 0;
for(int j = a[i][0]; j <= a[i][1]; j++)
if(sqrt(j)*sqrt(j) == j)
sum += j;
printf("Case %d: %d\n", i+1, sum);
}
return 0;
}
我的電腦也是294,你可以先把sqrt的結果轉成int,再判斷是否等於j就可以了