#4935: ...公式解有錯?


alopex_ (碰碰!這是什麼!)

學校 : 國立鳳山高級中學
編號 : 12777
來源 : [218.166.51.226]
最後登入時間 :
2014-09-19 10:05:05
d903. 數學達人 -- me | From: [218.172.2.10] | 發表日期 : 2011-03-05 09:18

 

 

 

 #include <stdio.h>

void m(int *a,int b);

void s(int *a,int b);

void d(int *a,int b);

int len = 0;

int main(){

int n1;

while(scanf("%d",&n1)==1){

if(n1<200){

printf("%d\n",(n1*n1-1)*n1*n1/12);

}else{

int num[100]={0},n2=n1,i;

for(i=0;n2>0&&i<100;i++){

num[i] = n2%10;

n2/=10;

len++;

}

m(num,n1);

s(num,1);

m(num,n1);

m(num,n1);

d(num,12);

for(i=1;i<=len;i++)printf("%d",num[len-i]);

printf("\n");

len = 0;

}

}

return 0;

}

 

void m(int *a,int b){

int i,temp,carry = 0;

for(i=0;i<len;i++){

temp = a[i] * b +carry;

a[i] = temp % 10;

carry = temp/10;

if(i+1==len && carry>0)len++;

}

}

void s(int *a,int b){

int i,temp,borrow = 0;

a[0] -= b;

for(i=0;i<len;i++){

a[i]-=  borrow;

if(a[i]<0){

a[i]+=10;

borrow = 1;

}if(borrow&&i==len-1)len--;

}

}

void d(int *a,int b){

int i,r=0;

for(i=len-1;i>=0;i--){

r = r * 10 + a[i];

a[i] = r/b;

r%=b;

if(r<12&&i==0)len--;

}

if(!a[len-1])len--;

}


公式不是((n2-1) * n2) / 12嗎?

 

 
#4937: Re:...公式解有錯?


cbs951214 (哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈...)

學校 : 康橋雙語學校
編號 : 11868
來源 : [111.241.182.196]
最後登入時間 :
2023-07-12 23:02:02
d903. 數學達人 -- me | From: [114.45.161.30] | 發表日期 : 2011-03-05 13:48

 

 

 

 #include

void m(int *a,int b);

void s(int *a,int b);

void d(int *a,int b);

int len = 0;

int main(){

int n1;

while(scanf("%d",&n1)==1){

if(n1<200){

printf("%d\n",(n1*n1-1)*n1*n1/12);

}else{

int num[100]={0},n2=n1,i;

for(i=0;n2>0&&i<100;i++){

num[i] = n2%10;

n2/=10;

len++;

}

m(num,n1);

s(num,1);

m(num,n1);

m(num,n1);

d(num,12);

for(i=1;i<=len;i++)printf("%d",num[len-i]);

printf("\n");

len = 0;

}

}

return 0;

}

 

void m(int *a,int b){

int i,temp,carry = 0;

for(i=0;i

temp = a[i] * b +carry;

a[i] = temp % 10;

carry = temp/10;

if(i+1==len && carry>0)len++;

}

}

void s(int *a,int b){

int i,temp,borrow = 0;

a[0] -= b;

for(i=0;i

a[i]-=  borrow;

if(a[i]<0){

a[i]+=10;

borrow = 1;

}if(borrow&&i==len-1)len--;

}

}

void d(int *a,int b){

int i,r=0;

for(i=len-1;i>=0;i--){

r = r * 10 + a[i];

a[i] = r/b;

r%=b;

if(r<12&&i==0)len--;

}

if(!a[len-1])len--;

}


公式不是((n2-1) * n2) / 12嗎?

 

檢查過了

是你的程式問題

有BUG 

 
#4938: Re:...公式解有錯?


alopex_ (碰碰!這是什麼!)

學校 : 國立鳳山高級中學
編號 : 12777
來源 : [218.166.51.226]
最後登入時間 :
2014-09-19 10:05:05
d903. 數學達人 -- me | From: [218.172.2.10] | 發表日期 : 2011-03-05 14:51

 

 

 

 #include

void m(int *a,int b);

void s(int *a,int b);

void d(int *a,int b);

int len = 0;

int main(){

int n1;

while(scanf("%d",&n1)==1){

if(n1<200){

printf("%d\n",(n1*n1-1)*n1*n1/12);

}else{

int num[100]={0},n2=n1,i;

for(i=0;n2>0&&i<100;i++){

num[i] = n2%10;

n2/=10;

len++;

}

m(num,n1);

s(num,1);

m(num,n1);

m(num,n1);

d(num,12);

for(i=1;i<=len;i++)printf("%d",num[len-i]);

printf("\n");

len = 0;

}

}

return 0;

}

 

void m(int *a,int b){

int i,temp,carry = 0;

for(i=0;i

temp = a[i] * b +carry;

a[i] = temp % 10;

carry = temp/10;

if(i+1==len && carry>0)len++;

}

}

void s(int *a,int b){

int i,temp,borrow = 0;

a[0] -= b;

for(i=0;i

a[i]-=  borrow;

if(a[i]<0){

a[i]+=10;

borrow = 1;

}if(borrow&&i==len-1)len--;

}

}

void d(int *a,int b){

int i,r=0;

for(i=len-1;i>=0;i--){

r = r * 10 + a[i];

a[i] = r/b;

r%=b;

if(r<12&&i==0)len--;

}

if(!a[len-1])len--;

}


公式不是((n2-1) * n2) / 12嗎?

 

檢查過了

是你的程式問題

有BUG 


減法借位忘記歸零

...謝謝^^過了 

 
ZeroJudge Forum