View Code of Problem 31

#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{   
	char n[100];
	while(scanf("%c",&n[0])!=EOF)
	{
		int x[100]={0};
		int i,j;
		for(i=1;;i++)
		{
			scanf("%c",&n[i]);
			if(n[i]=='\n') break;
		}
		j=i-2;
		while(1)
		{
          if(n[i-1]!='0') n[i-1]-=1;
		  else 
		  {
		  while(n[j]=='0') j--;
          while(j<i)
		  {
			  n[j]-=1;
			  n[j+1]+=10;
			  j++;
		  }
		  n[j]-=1;
		  }
		  break;
		}
		int t=i;
		for(i=t-1;i>=0;i--)
		{
			j=t-1-i;
			int m=5*(n[i]-'0');
			int a=j;
			while(m>0)
			{
				x[a++]+=m%10;
				m=m/10;
			}
			m=1*(n[i]-'0');
			a=j+2;
            while(m>0)
			{
				x[a++]+=m%10;
				m=m/10;
			}
		}
		x[0]+=3;x[1]+=2;
		for(i=0;i<=99;i++)
		{
			if(x[i]>=10)
			{
				x[i]-=10;
				x[i+1]+=1;
			}
		}
		for(i=99;i>=0;i--)
		{
			if(x[i])
			{
			while(i>=0)
				printf("%d",x[i--]);
			break;
			}
		}
		printf("\n");
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 31