微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

hdu 1250 大数相加并用数组储存

 
 
  1. #include<iostream> 
  2. using namespace std; 
  3. int main() 
  4.     int a[5][2010]; 
  5.     int i,j; 
  6.     int temp; //储存进位数
  7.     int n,len,k; 
  8.     while(cin>>n) 
  9.     { 
  10.         memset(a,sizeof(a)); 
  11.         a[0][0]=a[1][0]=a[2][0]=a[3][0]=1; 
  12.         len=1; 
  13.         for(i=4;i<n;i++) 
  14.         { 
  15.             temp=0; 
  16.             for(j=0;j<len;j++) 
  17.             { 
  18. temp+=a[(i-4)%5][j]+a[(i-3)%5][j]+a[(i-2)%5][j]+a[(i-1)%5][j]; 
  19.                 a[i%5][j]=temp%10; 
  20.                 temp/=10; 
  21.             } 
  22.             while(temp) //注意
  23.             { 
  24.                 a[i%5][j++]=temp%10; 
  25.                 temp/=10; 
  26.             } 
  27.             len=j; 
  28.         } 
  29.         len--; 
  30.         for(;len>=0;len--) 
  31.         cout<<a[(n-1)%5][len]; 
  32.         cout<<endl; 
  33.     } 
  34.     return 0; 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐