---------------------------------------------sky 数--------------------------------------- 描述 AI有一天发现一种奇怪的四位数它的十六进制,十进制,十二进制的数字之和是相同的,这样的数就被称为sky数。 例如2992,其四位数字之和为2+9+9+2=22,它的十六进制数为BB0,其各位数字之和也为22,同时它的十二进制 数表示1894,其各位数字之和也为22。下面你要对一些sky数进行判断。 输入 输入多个四位正整数,遇到0代表输入结束。 输出 对于输入的每一个数,进行判断,如果是sky数,就输出“YES”,相反则输出“NO”。 输入样例 1 2992 1234 0 输出样例 1 YES NO
讯享网
讯享网#include<iostream> using namespace std; int tensix(int n) {
int sum=0; int a; while(n>0) {
a=n%16; n=n/16; sum=sum+a; } return sum; } int tentwo(int n) {
int sum=0; int a; while(n>0) {
a=n%12; n=n/12; sum=sum+a; } return sum; } int ten(int n) {
int sum=0; int a; while(n>0) {
a=n%10; n=n/10; sum=sum+a; } return sum; } int main() {
while(1) {
int a; cin>>a; if(a==0) break; int b=tensix(a); int c=tentwo(a); int d=ten(a); if(b==c&&c==d) cout<<"YES"<<endl; else cout<<"NO"<<endl; } }
总结:
进制转化模板:
数值n转化为k进制
#include<iostream> using namespace std; int main() {
int n,k; cin>>n>>k; int a=0,m=0; int num[10086]; while(n>0) {
a=n%k; n=n/k; num[m]=a; m++; } for(int i=m-1;i>=0;i--) cout<<num[i]; }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/55366.html