F.我也是个签到题!
原题链接https://nuoyanli.com/contest/31/problem/F
将三位数转化16进制求出每一位之和,再转化为12进制 求出每一位之和,最后求出三位数每一位之和进行比较,由于是三位数 所以可以直接暴力一点点算。
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
long long T;
scanf("%lld",&T);
while(T--)
{
long long n;
scanf("%lld",&n);
long long p=n;
long long a=0,b=0,c=0,d=0,e=0;
char nn[1000];
char nnn[1000];
memset(nn,0,sizeof(nn));
memset(nnn,0,sizeof(nnn));
b=p/16;
a=p%16;
nn[0]=a;
c=b%16;
nn[1]=c+b;
c=b/16;
d=c%16;
nn[2]=c+d;
d=c/16;
if(d==0)
{
nn[3]=0;
}
else
{
nn[3]=1;
}
long long liu=nn[0]+nn[1]+nn[2]+nn[3];
p=n;
b=p/12;
a=p%12;
nnn[0]=a;
c=b%12;
nnn[1]=c+b;
c=b/12;
d=c%12;
nnn[2]=c+d;
d=c/12;
if(d==0)
{
nnn[3]=0;
}
else
{
nnn[3]=1;
}
long long er=nnn[0]+nnn[1]+nnn[2]+nnn[3];
long long shi;
a=n%10;
b=n%100-a;
c=n/100;
shi=a+b+c;
if(shi==er&&er==liu)
{
printf("Specializ!!!\n");
}
else
{
printf("disappointment....\n");
}
}
return 0;
}
当然数学好的人可以算出这个数不存在,
于是。。。
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
long long t;
scanf("%lld",&t);
while(t--)
{
long long n;
scanf("%lld",&n);
printf("disappointment....\n");
}
return 0;
}