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.

用java的Integer类中的toString方法,很容易将一个10进制的数转换为其他进制的数。
慢慢的体验Java方法的强大吧。。。

import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);char hex[] = {'a','b','c','d','e','f'};while(sc.hasNext()){int n10 = sc.nextInt();if(n10==0){return;}int a=0;int b=0;int c=0;String strn16 = Integer.toString(n10, 16);String strn12 = Integer.toString(n10, 12);int k=n10;while(k!=0){a=a+k%10;k=k/10;}//System.out.println(a);boolean isNum = true;for(int i=0;i<strn16.length();i++){isNum = true;for(int j=0;j<hex.length;j++){if(strn16.charAt(i)==hex[j]){b+=10+j;isNum=false;break;}}if(isNum){b+=Integer.parseInt(""+strn16.charAt(i));}}if(a!=b){System.out.println(n10+" is not a Sky Number.");continue;}for(int i=0;i<strn12.length();i++){isNum = true;for(int j=0;j<hex.length;j++){if(strn12.charAt(i)==hex[j]){c+=10+j;isNum=false;break;}}if(isNum){c+=Integer.parseInt(""+strn12.charAt(i));}}if(a!=c){System.out.println(n10+" is not a Sky Number.");continue;}System.out.println(n10+" is a Sky Number.");}}
}

HDOJ(HDU) 2097 Sky数(进制)相关推荐

  1. HDOJ(HDU) 2502 月之数(进制)

    Problem Description 当寒月还在读大一的时候,他在一本武林秘籍中(据后来考证,估计是计算机基础,狂汗-ing),发现了神奇的二进制数. 如果一个正整数m表示成二进制,它的位数为n(不 ...

  2. hdoj 2097 Sky数

    Sky数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  3. C语言32位正整数作为id进程,SOJ4453 Excel列数 进制转换

    描述 我们都知道Excel的列数是用字母表示的,比如第1列对应A,第27列对应AA. 假设给定一个正整数n,你能给出它所对应的字母表示么? 输入格式 程序需要读入多个测试样例,每个测试样例中: 一个正 ...

  4. 杭电------2097 Sky数(C语言写)

    //这个题没有一次过,哈哈哈哈,题意理解错了,开始还以为是必须加起来等于22呢 //其实就是依次算出个进制下的和,虽然每个循环最多循环四次,但是还是加上必要的判断,想办法让 //提前结束 #inclu ...

  5. PAT练习 进制回文数(进制问题+字符串处理)

    题目描述: 如果一个数字从左边读和从右边读一样,那么这个数字就是一个回文数.例如32123就是一个回文数:17在某种意义上也是一个回文数,因为它的二进制型式--10001--是一个回文数. 请你帮忙开 ...

  6. 计算机编码二进制0001,二进制学习01(二进制,进制运算,数据宽度,无符号位有符号位编码规则)...

    二进制学习01 进制 一.二进制简介 1)什么是二进制? 2)二进制的简写形式 二.进制运算 1)八进制运算表 (1) 加法运算表 (2)乘法运算表 (3)八进制简单运算题 三.数据宽度 1)什么是数 ...

  7. 【数字电路基础】进制转换:二进制、十进制、八进制、十六进制、反码、补码、原码

    文章目录 一.无符号数进制转换 1.1.十进制转二.八.十六 1.1.1. 十进制转二进制 1.1.2. 十进制转八进制 1.1.2. 十进制转十六进制 1.2.二.八.十六转十进制 1.3 二进制转 ...

  8. python16进制转10进制_python16进制转换为10进制

    python将十六进制转为十进制数字的程序怎么写 把十六进制的字串转为十进制数字: Python代码 >>> print int('ff', 16) 255 >>> ...

  9. Java实现任意进制转换拓展进制转换计算器

    JAVA实现蓝桥杯基础练习十六进制转换八进制-----------拓展进制转换计算器 这个题目我浏览了大量的道友的文章发现十分麻烦,但仍然从其中收益菲薄,所以在这里分享一下我认为最好的代码 impor ...

  10. 栈 10进制转16进制

    #include<winuser.inl> #include<stdio.h> #include <time.h> #include <cstdlib> ...

最新文章

  1. Mac下安装JDK以及怎么配置环境变量?
  2. 如何在Windows下编译OpenSSL?
  3. 理论计算机初步:概率算法和近似算法
  4. What is Proguard?
  5. 简单理解mysql事务_如何理解数据库事务中的一致性的概念?
  6. 西门子plm_西门子PLM副总裁:NX,智能的CAD平台
  7. 爬虫获取不到网页完整源码_你的第一只网络爬虫
  8. “手把手撕LeetCode题目,扒各种算法套路的裤子”
  9. itext实现PDF模板套打java,生成电子合同电子收据电子发票
  10. 一些与一对一视频聊天软件开发有关的事,也许你该了解的
  11. OpenVSwitch的端口Port学习使用
  12. 弱密码验证不能连续字符(如123、abc)连续3位或3位以上、不能相同字符(如111、aaa)连续3位或3位以上
  13. 微博第三方+海外国际版+V2EX第三方
  14. golang 大数据平台_人工智能大数据平台中Golang的应用实践
  15. Lambda表达式和Stream类的使用
  16. 58同城2021校招笔试-二叉树遍历
  17. mini210s上uboot的移植
  18. 计算机在化学化工中的应用ppt绪论,化工原理_01概述全解课件.ppt
  19. 【GDAL工具箱】新手使用指南-简介
  20. 类和对象1-构造函数、析构函数

热门文章

  1. 软考笔记(数据结构篇)———— 二叉树、树、森林转换
  2. android原生ios,Windows Phone的原生iOS/Android应用程序
  3. fd 句柄_FD_CLOEXEC用法及原因-文件句柄
  4. 编译ffmpeg:no match insn: lbu $r16,0($r5)
  5. 编程基本功:工作完成之后,还有做好、做精、做美、做顶、做宗等境界
  6. JS向NPAPI传递参数,并返回结果
  7. 热烈庆祝排名进入5000
  8. java虚拟机内存_java虚拟机内存区域的划分以及作用详解
  9. python3多进程执行循环_Python3 并发编程之多进程(一)
  10. python 数据流中的移动平均值_Python实现数据流中的中位数【堆】