杭電ACM2097--Sky數

這題思路很簡單,把10,12,16進制數都按位相加,然後進行比較即可。

http://acm.hdu.edu.cn/showproblem.php?pid=2097

 

<span style="font-size:18px;">#include <stdio.h>
int peng(int m)
{
	int a;
	a = m/1000+(m%1000)/100+(m%100)/10+m%10;
	return a;
}
int peng16(int m)
{
	int a;
	a = m/4096+m%4096/256+m%256/16+m%16;
	return a;
}
int peng12(int m)
{
	int a;
	a = m/1728+m%1728/144+m%144/12+m%12;
	return a;
}
int main()
{
	int m;
	while (scanf("%d",&m)!=EOF&&m!=0)
	{
		//printf("%d %d %d\n",peng(m),peng12(m),peng16(m));
		if (peng(m)==peng12(m)&&peng(m)==peng16(m))
			printf("%d is a Sky Number.\n",m);
		else
			printf("%d is not a Sky Number.\n",m);
	}
	return 0;
}</span>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章