1720
#include<stdio.h>
int main()
{
int a,b;
while(scanf("%x%x",&a,&b)!=EOF) //输入16进制数
{
printf("%d\n",a+b); //将16进制数转换为10进制数
}
return 0;
}
1062
#include<stdio.h>
#include<string.h>
int main()
{
int n,a,i,j,k;
char c[1005];
scanf("%d",&n);
{
getchar(); //要加getchar吸收空格
while(n--) //n行测试数据
{
gets(c); //输入一行数据
a=strlen(c); //测出每组数据的长度,这个不包括\0
for(i=0;i<=a;i++) //对每一行数据遍历一遍
{
if(c[i]==' '||i==a) //如果遇到空格或者到达末尾处,k为上一个单词的位置
{
for(j=i-1;j!=k&&j>=0;j--) //对前面的单词进行反向输出
putchar(c[j]); //注意这里为c[j]
k=i; //记录上一个输出单词的末尾位置
if(i!=a) putchar(' ');
}
}
printf("\n");
}
}
return 0;
}
2104
/*该题大意为每间隔M次开箱找一次手帕,
如有A,B,C三个箱子,间隔M等于2,首先
看B箱,那下一次看A箱,再看C箱,此时
确定能够找到手帕,因为三个箱子全都看过
此题要求N,M互质,否则当M为N的因数时,
一直重复循环,才能遍历每一个盒子,此题我采用辗转相除法*/
#include<stdio.h>
int main()
{
int n,m,i;
while(scanf("%d%d",&n,&m))
{
i=1;
if(n==-1&&m==-1)
break;
while(i!=0)
{
i=n%m;
n=m;
m=i;
}
if(n==1) printf("YES\n");
else printf("POOR Haha\n");
}
return 0;
}
1064
求平均值之后输出美元符号加平均值,注意数据类型
#include<stdio.h>
int main()
{
float c[12],aver,sum=0;
int i;
for(i=0;i<12;i++)
{
scanf("%f",&c[i]);
sum=sum+c[i];
}
aver=sum/12;
printf("$%.2f\n",aver);
return 0;
}
2734
此题是计算每个字母的位置序号乘以本身代表的数的大小
如ACM: 11 + 23 + 313 = 46
MID CENTRAL: 113 + 29 + 34 + 40 + 53 + 65 + 714 + 820 + 918 + 101 + 1112 = 650
空格占一个位置但本身为零
#include<stdio.h>
#include<string.h>
int main()
{
char ch[300];
int sum,a,i;
while((gets(ch)&&ch[0]!='#'))
{
sum=0;
a=strlen(ch);
for(i=0;i<a;i++)
{
if(ch[i]!=' ')
sum=sum+(ch[i]-64)*(i+1); //当ch[i]!=空格时,求和的公式
}
printf("%d\n",sum);
}
return 0;
}
1170
#include<stdio.h>
#include<math.h>
int main()
{
int n;
int a,b;
char c;
scanf("%d",&n);
while(n--)
{
getchar(); //吸收换行符
scanf("%c %d %d",&c,&a,&b);
if(c=='*') printf("%d\n",a*b);
if(c=='+') printf("%d\n",a+b);
if(c=='-') printf("%d\n",a-b);
if(c=='/')
{
if(a%b==0) printf("%d\n",a/b);
else
printf("%.2lf\n",(double)a/b);
}
}
return 0;
}
1197
数字2991具有(十进制)数字之和2 + 9 + 9 + 1 = 21.由于2991 = 1 * 1728 + 8 * 144 + 9 * 12 + 3,其十二进制表示为1893(12)
即以10进制表示和以12进制表示、16进制表示的每一位数的和相等
#include<stdio.h>
int main()
{
int i,sum,sum1,sum2;
for(i=2091;i<9999;i++)
{
sum=i/1000+i%1000/100+i%100/10+i%10;
sum1=i/1728+i%1728/144+i%144/12+i%12;
sum2=i/4096+i%4096/256+i%256/16+i%16;
if(sum1==sum&&sum2==sum)
printf("%d\n",i);
}
return 0;
}
2629
暴力AC
#include<stdio.h>
int main()
{
char s[20];
int n;
scanf("%d",&n);
getchar();
while(n--)
{
gets(s);
printf("He/She is from ");
if(s[0]=='3'&&s[1]=='3') printf("Zhejiang");
if(s[0]=='1'&&s[1]=='1') printf("Beijing");
if(s[0]=='7'&&s[1]=='1') printf("Taiwan");
if(s[0]=='8'&&s[1]=='1') printf("Hong Kong");
if(s[0]=='8'&&s[1]=='2') printf("Macao");
if(s[0]=='5'&&s[1]=='4') printf("Tibet");
if(s[0]=='2'&&s[1]=='1') printf("Liaoning");
if(s[0]=='3'&&s[1]=='1') printf("Shanghai");
printf(",and his/her birthday is on ");
printf("%c%c,%c%c,%c%c%c%c",s[10],s[11],s[12],s[13],s[6],s[7],s[8],s[9]);
printf(" based on the table.\n");
}
return 0;
}