Pagini recente » Cod sursa (job #823382) | Cod sursa (job #2777534) | Cod sursa (job #942281) | Cod sursa (job #2803974) | Cod sursa (job #522316)
Cod sursa(job #522316)
#include<fstream>
#include<string>
using namespace std;
int t,a[]={1,5,2,8,3,9,2,8,7,7,8,4,7,3,8,4,1,5,4,4};
char s[102];
/*int Divizibil3(char s[],int n)
{
int sum=0,i;
for(i=0;i<n;i++)
sum=sum+(s[i]-'0');
if(sum%3==0)
return 1;
return 0;
}
int Divizibil20(char s[],int n)
{
int x;
x=(s[n-1]-'0')+(s[n-2]-'0')*10;
if(x%4==0 && x%5==0)
return 1;
return 0;
}
int Divizibil40(char s[],int n)
{
int x;
x=(s[n-1]-'0')+(s[n-2]-'0')*10+(s[n-3]-'0')*100;
if(x%8==0 && x%5==0)
return 1;
return 0;
}
int Divizibil60(char s[],int n)
{
if(Divizibil3(s,n) && Divizibil20(s,n))
return 1;
return 0;
}
int Divizibil80(char s[],int n)
{
int x;
x=(s[n-1]-'0')+(s[n-2]-'0')*10+(s[n-3]-'0')*100+(s[n-4]-'0')*1000;
if(x%16==0 && x%5==0)
return 1;
return 0;
}
int Divizibil100(char s[],int n)
{
int x;
x=(s[n-1]-'0')+(s[n-2]-'0')*10;
if(x==0)
return 1;
return 0;
}
int Divizibil120(char s[],int n)
{
int x;
x=(s[n-1]-'0')+(s[n-2]-'0')*10+(s[n-3]-'0')*100;
if(x%8==0 && x%5==0 && Divizibil3(s,n))
return 1;
return 0;
}*/
int Impartire120(char s[],int n)
{
if(n==1) return (s[0]-'0');
if(n==2) return ((s[0]-'0')*10+(s[1]-'0'));
int a[n];
int i,t;
for(i=0;i<n;i++)
a[i]=s[i]-'0';
t=a[0]*100+a[1]*10+a[2];
for(i=4;i<n;i++)
{
t=t%120;
t=t*10+a[i];
}
return t;
}
int main()
{
int i,n,r,sol;
ifstream fin("cifra.in");
ofstream fout("cifra.out");
fin>>t;
for(i=1;i<=t;i++)
{
fin>>s;
n=strlen(s);
r=Impartire120(s,n);
sol=(r/20)*4;
if(r%20) sol+=a[r%20-1];
fout<<(sol%10)<<"\n";
memset(s,' ',sizeof(s));
}
fin.close();
fout.close();
return 0;
}