不才我嘗試過很多遍,用C++或是C傳送,%lld 跟 %I64d也都送過一次
但是在Zerojudge都沒辦法過ˊˋ 拜託高手幫我看一看哪邊出錯了?謝謝
#include<stdio.h>
int main()
{
int n,f,i;
scanf("%d",&n);
for(i=1;i<=n;i++) {
scanf("%d",&f);
int array[20][20]={0};
int i1,i2,num;
long long int sum=0;
for(i1=0;i1<f;i1++) {
for(i2=0;i2<3;i2++){
scanf("%d",&num);
array[i1][i2]=num; } }
for(i1=0;i1<f;i1++) {
sum=sum+array[i1][0]*array[i1][2]; }
printf("%I64d\n",sum);
}
return 0;
}
不才我嘗試過很多遍,用C++或是C傳送,%lld 跟 %I64d也都送過一次
但是在Zerojudge都沒辦法過ˊˋ 拜託高手幫我看一看哪邊出錯了?謝謝
#include
int main()
{
int n,f,i;
scanf("%d",&n);
for(i=1;i<=n;i++) {
scanf("%d",&f);
int array[20][20]={0};
int i1,i2,num;
long long int sum=0;
for(i1=0;i1
for(i2=0;i2<3;i2++){
scanf("%d",&num);
array[i1][i2]=num; } }
for(i1=0;i1
sum=sum+array[i1][0]*array[i1][2]; }
printf("%I64d\n",sum);
}
return 0;
}
UVa那裡的sum不會超出int的範圍
不過ZJ的會
所以改成以下程式應該就會過了
sum=sum+(long long)array[i1][0]*array[i1][2];
不才我嘗試過很多遍,用C++或是C傳送,%lld 跟 %I64d也都送過一次
但是在Zerojudge都沒辦法過ˊˋ 拜託高手幫我看一看哪邊出錯了?謝謝
#include
int main()
{
int n,f,i;
scanf("%d",&n);
for(i=1;i<=n;i++) {
scanf("%d",&f);
int array[20][20]={0};
int i1,i2,num;
long long int sum=0;
for(i1=0;i1
for(i2=0;i2<3;i2++){
scanf("%d",&num);
array[i1][i2]=num; } }
for(i1=0;i1
sum=sum+array[i1][0]*array[i1][2]; }
printf("%I64d\n",sum);
}
return 0;
}
UVa那裡的sum不會超出int的範圍
不過ZJ的會
所以改成以下程式應該就會過了
sum=sum+(long long)array[i1][0]*array[i1][2];
還是沒過ˊˋ 就算寫sum=sum+(long long)array[i1][0]*array[i1][2];
或者在加改 long long int array[20][20] 都錯= =
不才我嘗試過很多遍,用C++或是C傳送,%lld 跟 %I64d也都送過一次
但是在Zerojudge都沒辦法過ˊˋ 拜託高手幫我看一看哪邊出錯了?謝謝
還是沒過ˊˋ 就算寫sum=sum+(long long)array[i1][0]*array[i1][2];
或者在加改 long long int array[20][20] 都錯= =
下面是我幫你修改過的程式碼
不開陣列,一次抓三個值 a b c , sum += a*c
然後輸入輸出全部用 %lld
#include <stdio.h>
int main() {
int n,f,i,j;
scanf("%d", &n );
for( i = 1 ; i <= n ; i++ ) {
scanf("%d", &f );
long long int a,b,c;
long long int sum = 0;
for( j = 0 ; j < f ; j++ ) {
scanf("%lld %lld %lld", &a, &b, &c );
sum += a*c;
}
printf("%lld\n", sum );
}
return 0;
}
不才我嘗試過很多遍,用C++或是C傳送,%lld 跟 %I64d也都送過一次
但是在Zerojudge都沒辦法過ˊˋ 拜託高手幫我看一看哪邊出錯了?謝謝
#include
int main()
{
int n,f,i;
scanf("%d",&n);
for(i=1;i<=n;i++) {
scanf("%d",&f);
int array[20][20]={0};
int i1,i2,num;
long long int sum=0;
for(i1=0;i1
for(i2=0;i2<3;i2++){
scanf("%d",&num);
array[i1][i2]=num; } }
for(i1=0;i1
sum=sum+array[i1][0]*array[i1][2]; }
printf("%I64d\n",sum);
}
return 0;
}
UVa那裡的sum不會超出int的範圍
不過ZJ的會
所以改成以下程式應該就會過了
sum=sum+(long long)array[i1][0]*array[i1][2];
還是沒過ˊˋ 就算寫sum=sum+(long long)array[i1][0]*array[i1][2];
或者在加改 long long int array[20][20] 都錯= =
抱歉, 忘了跟你說, 除了改(long long)以外
sum要用%lld來輸出, 這樣就會過了
你可以試著更改原來的程式或是已有版友跟你說的更省記憶體的解法
不才我嘗試過很多遍,用C++或是C傳送,%lld 跟 %I64d也都送過一次
但是在Zerojudge都沒辦法過ˊˋ 拜託高手幫我看一看哪邊出錯了?謝謝
#include
int main()
{
int n,f,i;
scanf("%d",&n);
for(i=1;i<=n;i++) {
scanf("%d",&f);
int array[20][20]={0};
int i1,i2,num;
long long int sum=0;
for(i1=0;i1
for(i2=0;i2<3;i2++){
scanf("%d",&num);
array[i1][i2]=num; } }
for(i1=0;i1
sum=sum+array[i1][0]*array[i1][2]; }
printf("%I64d\n",sum);
}
return 0;
}
UVa那裡的sum不會超出int的範圍
不過ZJ的會
所以改成以下程式應該就會過了
sum=sum+(long long)array[i1][0]*array[i1][2];
還是沒過ˊˋ 就算寫sum=sum+(long long)array[i1][0]*array[i1][2];
或者在加改 long long int array[20][20] 都錯= =
抱歉, 忘了跟你說, 除了改(long long)以外
sum要用%lld來輸出, 這樣就會過了
你可以試著更改原來的程式或是已有版友跟你說的更省記憶體的解法