hdu2097 nyoj414 sky数 (进制转换)

Sky number

时间限制:1000 ms  |  内存限制:65535 KB

难度:1

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

输入
输入含有一些四位正整数,如果为0,则输入结束。
输出
若n为Sky数,则输出“#n is a sky Number.”,否则输出“#n is not a sky Number.”。每个结果占一行。注意:#n表示所读入的n值。
样例输入
2992
1234
0
样例输出
2992 is a Sky Number.
1234 is not a Sky Number.
来源
hdu
上传者

路过这

#include <stdio.h>
int main()
{
	int b[3],a[3]={10,16,12};//数组b贮存进制转换后的数,数组a贮存需要转换的进制
	int i,sum,p,n;
	while(scanf("%d",&n)!=EOF&&n!=0)
	{
		for(i=0;i<3;i++)
		{
			p=n,sum=0;
			while(p)
				sum=sum+p%a[i],p=p/a[i];
			b[i]=sum;
		}
		if(b[1]==b[0]&&b[1]==b[2])//如果转换后的三个进制数相等
			printf("%d is a Sky Number.\n",n);
		else
			printf("%d is not a Sky Number.\n",n);
	}
	return 0;
}        
时间: 2024-10-05 06:09:47

hdu2097 nyoj414 sky数 (进制转换)的相关文章

oj---九度oj----大数---进制转换

struct bigInteger{ int digit[maxDigits]; int size; } 这里digit每一位的权重都乘以10000: 如果不是特别大的数,没必要:乘以10000后,把字符串转化为数字比较麻烦 #include<cstdio> #include<cstring> #define maxDigits 100 struct bigInteger{ int digit[maxDigits]; int size; void init(){ for(int i

SOJ4453 Excel列数 进制转换

描述 我们都知道Excel的列数是用字母表示的,比如第1列对应A,第27列对应AA. 假设给定一个正整数n,你能给出它所对应的字母表示么? 输入格式 程序需要读入多个测试样例,每个测试样例中: 一个正整数n(0 < n < 200000) 输出格式 对每个测试样例: 所对应的字母表示 样例输入 26 171135 样例输出 Z ISDC 资源约定 峰值内存消耗 < 256M CPU消耗 < 2000ms 请严格按要求输出,不要画蛇添足地打印类似:"请您输入..."

1. 硬件基本认知 ; 进制转换 2019-10-27

1.1 计算机硬件基本认知 cpu: 中央处理器. 相当于人的大脑.运算中心,控制中心. 内存: 临时存储数据. 优点:读取速度快. 缺点:容量小,造价高,断电即消失. 硬盘: 长期存储数据. 优点:容量大,造价相对低,断电不消失. 缺点:读取速度慢. 操作系统:统一管理计算机软硬件资源的程序 1.2 计算机文件大小单位 b = bit  位(比特) B = Byte 字节 ? 1Byte = 8 bit  一个字节等于8位 可以简写成 1B = 8b 1KB = 1024B 1MB = 102

03 php 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换,算术运算,比较运算

03 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换, 算术运算,比较运算,逻辑运算,短路现象, 三目运算符,字符型运算: 数据类型 整体划分 标量类型: int, float, string, bool 复合类型: array,     object 特殊类型: null,     resouce 整数类型int, integer 3种整数表示法 十进制写法:123: $n1 = 123; 八进制写法: 0123 $n2 = 0123; 十六进制写法: 0x123 $n3

计算机进制转换

一.计算机只认识0和1,二进制. 二.2进制转换成 8进制 和 16进制,如下图: 二进制 > 八进制 :  研究上图发现,3位最高二进制可以用来表示一位八进制.所以,将二进制分解每3位,不够前面补0,然后每3位转换为10进制,顺序排列即可. 二进制 > 十六进制  :4位最高二进制可以用来表示一位十六进制.所以,将二进制分解每4位,不够前面补0,然后每4位转换为10进制,超过9用字母表示即可.顺序排列即可. 如下: 二进制 > 十进制:   11001001 = 2^7+2^6+2^3

原理之一,进制转换

原理之一,进制转换 日常生活中采用个数字都是十进制,而计算机采用的是运算更简单.易实现且可靠,为逻辑设计提供了有力途经的二进制,除此之外还有八进制和十六进制作为二进制的缩写. 进制:逢N进一,N是每种进位计数制表示一位数所需要的符号数目为基数. 二进制:逢二进一,借一当二,包含的数字(0.1) 八进制:逢八进一,借八当一,包含(0.1.2.3.4.5.6.7) 十六进制:逢十六当一,以一当十六,包含(0.1.2.3.4.5.6.7.8.9.10(A).11(B).12(C).13(D).14(E

NOIP2000 进制转换

题一   进制转换              (18分)  问题描述      我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式.例如:123可表示为 1*102+2*101+3*100这样的形式. 与之相似的,对二进制数来说,也可表示成每个二进制数码乘以一个以该数字所处位置的(值-1)为指数,以2为底数的幂之和的形式.一般说来,任何一个正整数R或一个负整数-R都可以被选来作为一个数制系统的基数.如果是以R或-R为基

进制进制进制~转换

从刚学计算机器就对进制转换有着莫名的反感,2进制 8进制 10进制 16进制各种转换. 下面就说下逻辑地址转换成物理地址的求法吧 首先,用户输入一个16进制的数字cin>>hex>>logic_add;   hex的意思是告诉计算机输入的数是以16进制方式输入的 这个时候你要是输出cout<<logic_add;  你会发现输出的是把这个16进制的数转换为10进制以后输出的结果 cout<<hext<<logic_add;这样输出的才是16进制.

黑马程序员------进制转换

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 在java中数字的表现形式一般有二进制,八进制,十进制,十六进制等,在平时的编程中我们可以通过java提供的API函数方便的实现各个进制间的转换,如:Integer.toHexString(int i)--十进制转十六进制:Integer