计算进位次数

#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;
}

 

posted @ 2016-02-17 15:41  邻家那小孩儿  阅读(395)  评论(0编辑  收藏  举报