您的位置:首页 > 其它

HDU - 2097 Sky数 (water)

2018-01-12 19:01 218 查看

Discription

给定一个数字,该数字的十进制或者十二进制或者十六进制各位相加都相等则为Sky数。例如2992,三种进制的各位相加都相等。

Input

输入含有一些四位正整数,如果为0,则输入结束。

Output

若n为Sky数,则输出“#n is a Sky Number.”,否则输出“#n is not a Sky Number.”。每个结果占一行。注意:#n表示所读入的n值。

Sample Input

2992

1234

0

Sample Output

2992 is a Sky Number.

1234 is not a Sky Number.

solution

进制转换题目。

#include <cstdio>
int arr[99999], m;
int main()
{
while (~scanf("%d", &m) && m)
{
int m2 = m, tmp[3] = {10, 12, 16}, sum[3] = {0};
for (int j = 0; j < 3; j++)
{
int len = 1, n = tmp[j], m = m2;
while (m != 0)
arr[len++] = m % n, m /= n;
for (int i = len - 1; i >= 1; i--)
sum[j] += arr[i];
}
if (sum[0] == sum[1] && sum[1] == sum[2])
printf("%d is a Sky Number.\n", m2);
else
printf("%d is not a Sky Number.\n", m2);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: