Pagini recente » Cod sursa (job #1630587) | Cod sursa (job #2518666) | Cod sursa (job #1503381) | Cod sursa (job #2721803) | Cod sursa (job #710952)
Cod sursa(job #710952)
#include "stdio.h"
#include "string.h"
int pow(int a,int b)
{
int i,putere=a;
for (i=2;i<=b;i++)
putere=putere*a;
return putere;
}
int det_numar(char numar[101])
{
int baza,exponent,lungime;
lungime=strlen(numar);
if (lungime>1)
{
baza=numar[lungime-1]-'0';
exponent=(numar[lungime-2]-'0')*10+baza;
return exponent;
} else
{
baza=numar[lungime-1]-'0';
return baza;
}
}
int ultima_cifra(int numar)
{
int rest,baza=numar%10;
switch(baza)
{
case 1: return 1;
case 2: return pow(2,numar%4)%10;
case 3: return pow(3,numar%4)%10;
case 4: if (numar%2==0) return 6; else return 4;
case 5: return 5;
case 6: return 6;
case 7: return pow(7,numar%4)%10;
case 8: return pow(8,numar%4)%10;
case 9: if (numar%2==0) return 1; else return 9;
case 0: return 0;
}
}
int main()
{
FILE *f,*g;
unsigned int t,suma=0,nr,i;
char numar[101];
f=fopen("cifra.in","r");
g=fopen("cifra.out","w");
//Citim pe T;
fscanf(f,"%u",&t);
for (i=1;i<=t;i++)
{
//Citim cele N numere , ca sir de caractere
fscanf(f,"%s",numar);
nr=ultima_cifra(det_numar(numar));
suma=(suma+nr)%10;
fprintf(g,"%u\n",suma);
}
fclose(g);
}