#include<stdio.h>
#include<stdlib.h>
int main()
{
int a1,b1,c1,a2,b2,c2; //【思维】168以内的数字可以用两位13进制数表示,大大简化代码
scanf("%d.%d.%d",&a1,&b1,&c1);
scanf("%d.%d.%d",&a2,&b2,&c2);
int ra,rb,rc,tmp; //ra,rb,rc存放结果的第一、二、三位置数字,tmp存当前的进位
ra=rb=rc=tmp=0;
rc=(c1+c2)%29; //【skill】通过不断的取余,取进位,加到下一位取余再进位……无需判断,指导处理到头
tmp=(c1+c2)/29;
rb=(b1+b2+tmp)%17;
tmp=(b1+b2+tmp)/17;
ra=a1+a2+tmp;
printf("%d.%d.%d",ra,rb,rc);
//system("pause");
return 0;
}
PAT:1058. A+B in Hogwarts (20) AC
原文:http://www.cnblogs.com/Evence/p/4296127.html