Pagini recente » Cod sursa (job #362564) | Cod sursa (job #2198614) | Cod sursa (job #161895) | Cod sursa (job #2241546) | Cod sursa (job #40974)
Cod sursa(job #40974)
#include<stdio.h>
#include<mem.h>
#include<string.h>
#define Nmax 50
int p,t,n;
int ultima_cf(int t)
{
int i,cf=1;
for (i=1;i<=t;i++)
{
cf=cf*t;
cf=cf%10;
if(cf==0)return 0;
}
return cf;
}
int a[Nmax];
int r[Nmax];
void Aduna(int *a,int &na,int n)
{
int i;
a[0]=1+a[0];
i=0;
while ((a[i]>9)&&(i<n))
{
a[i]=a[i]%10;
a[i+1]=a[i+1]+1;
i++;
}
na=i--;
}
int Compara(int *a,int na,int *r,int n)
{
int i;
if (na>n) return 1;
else if (n>na) return -1;
i=na-1;
while ((a[i]==r[i])&&(i>=0))
i--;
if (i==-1) return 0;
if (a[i]>r[i]) return 1;
else return -1;
}
int main()
{
int x[10];
x[1]=1,x[2]=4,x[3]=7,x[4]=6,x[5]=5,x[6]=6,x[7]=7,x[8]=6,x[9]=9,x[0]=0;
char nr[Nmax];
int i,p,j,s=0,na=0;
freopen("cifra.in","r",stdin);
freopen("cifra.out","w",stdout);
scanf("%d",&p);
for(i=1;i<=p;i++)
{
s=0;
memset(a,0,sizeof(int)*na);
memset(r,0,sizeof(int)*n);
scanf("%s",nr);
n=strlen(nr);
for(j=0;j<n;j++)
r[j]=nr[j]-'0';
na=0;
a[0]=0;
while (Compara(a,na,r,(n-1))<=0)
{
s=s+(a[na-1]-'0');
s=s%10;
Aduna(a,na,(n-1));
}
printf("%d\n",s);
}
return 0;
}