HDU 2097 Sky数 (进制转换)

网友投稿 311 2022-08-27

HDU 2097 Sky数 (进制转换)

Sky数

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 20237    Accepted Submission(s): 11499

Problem Description

Sky从小喜欢奇特的东西,而且天生对数字特别敏感,一次偶然的机会,他发现了一个有趣的四位数2992,这个数,它的十进制数表示,其四位数字之和为2+9+9+2=22,它的十六进制数BB0,其四位数字之和也为22,同时它的十二进制数表示1894,其四位数字之和也为22,啊哈,真是巧啊。Sky非常喜欢这种四位数,由于他的发现,所以这里我们命名其为Sky数。但是要判断这样的数还是有点麻烦啊,那么现在请你帮忙来判断任何一个十进制的四位数,是不是Sky数吧。

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.

Source

​​2007省赛集训队练习赛(2) ​​

题解:个数位上的数相加即可,不用化成其他进制再判断,当然也可以

AC代码:

#include#include#include#include#include#include#include#include#include#includetypedef long long LL;using namespace std;int sum(int n,int k){ int s=0; while(n!=0) { s+=n%k; n/=k; } return s;}int main(){ int n; while(cin>>n,n) { int a,b,c; a=sum(n,10); //每个数位上的数相加即可,不用化成其他进制 b=sum(n,12); c=sum(n,16); if(a==b&&b==c&&a==c) cout<

贴个进制转换的....

#include#includeusing namespace std;int fuck1(int a){ int output=0; while(a) { int x=a%10; output+=x; a/=10; } return output;}int fuck2(int a){ int output=0; while(a) { int x=a%16; output+=x; a/=16; } return output;}int fuck3(int a){ int output=0; while(a) { int x=a%12; output+=x; a/=12; } return output;}int main(){ int n; while(~scanf("%d",&n)) { if(n==0)break; if(fuck1(n)==fuck2(n)&&fuck2(n)==fuck3(n)) printf("%d is a Sky Number.\n",n); else printf("%d is not a Sky Number.\n",n); }}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:“自我打脸”数年后上美集团谋上市,营销狂魔的负作用综合症!
下一篇:品牌营销,从提出一个好问题开始!(品牌营销作业)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~