计算进位次数
#include <iostream> using namespace std; int main() { int a,b,ans,c; while(cin>>a>>b) { ans=0;c=0; for(int i=1;i<=9;i++) { c=(a%10+b%10+c)>9?1:0; ans+=c; a=a/10;b=b/10; } cout<<ans<<endl; } return 0; }
计算n!(n<=1000)
#include <iostream> #include <stdio.h> #include <string.h> using namespace std; const int maxn=3000; int f[maxn]; int main() { int i,j,n; scanf("%d",&n); memset(f,0,sizeof(f)); f[0]=1; for(i=2;i<=n;i++) { int c=0; for(j=0;j<maxn;j++) { int s=f[j]*i+c; f[j]=s%10; c=s/10; } } for(j=maxn-1;j>=0;j--) if(f[j]) break; for(i=j;i>=0;i--) printf("%d",f[i]); printf("\n"); return 0; }
你若是天才,我便是疯子