"特别的十进制数"是指具有如下特征的数:它的各位数字之和等于该数的 16进制表示的各位数字之和,并且还等于该数的 12进制表示的各位数字之和。\n\n例如,2991的各位数字之和为 2+9+9+1=21,它的 12进制表示是 1893,各位数字之和也是 21 。但是 2991的 16 进制表示是 BAF,并且 11+10+15=36,所以 2991不具备指定的特征。\n\n又如,2992 在全部三种表示法中(包括 BB016)各位数字之和都是22,所以2992 具备指定的特征。故 2992是一个特别的十进制数。\n\n输入\n输入文件只有一个长度不超过 9位的十进制正整数。\n\n输出\n第一行为输入的十进制数所对应的十六进制数各位数字之和,第二行为分 Yes(具备特征)或 No(不具备特征)\nc++代码内容:cpp\n#include <iostream>\n#include <string>\nusing namespace std;\n\nint sumOfDigits(int num, int base) {\n int sum = 0;\n while (num > 0) {\n sum += num % base;\n num /= base;\n }\n return sum;\n}\n\nint main() {\n string dec;\n cin >> dec;\n int decimal = stoi(dec);\n\n int hexSum = sumOfDigits(decimal, 16);\n int twelveSum = sumOfDigits(decimal, 12);\n\n cout << hexSum << endl;\n\n if (hexSum == twelveSum && hexSum == sumOfDigits(decimal, 10)) {\n cout << \"Yes\" << endl;\n } else {\n cout << \"No\" << endl;\n }\n\n return 0;\n}\n

特别的十进制数 - C++代码实现

原文地址: https://www.cveoy.top/t/topic/qB6z 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录