进制转换[PAT]
来源:互联网 发布:ntoskrnl 占用80端口 编辑:程序博客网 时间:2024/05/21 16:21
进制转换
十进制转其他进制(2~16)
一的个数
题目描述:
NowCoder总是力争上游,凡事都要拿第一,所以他对“1”这个数情有独钟。爱屋及乌,他也很喜欢包含1的数,例如10、11、12……。不仅如此,他同样喜欢任意进制中包含1的数。当然,其中包含1的个数越多他越喜欢。你能帮他统计一下某个数在特定的进制下1的个数吗?
输入描述:
输入有多组数据,每组数据包含一个正整数n (1≤n≤2147483647)和一个正整数r (2≤r≤16)。
其中n为十进制整数,r为目标进制。
输入例子:
1 2123 16
输出例子:
10
代码:
#include <stdio.h>int main(void){ unsigned int n,r; while(scanf("%u%u",&n,&r)!=EOF){ int count = 0; while(n){ if(n%r==1) ++count; n/=r; } printf("%u\n",count); } return 0;}
外星人的语言
题目描述:
nowcoder费了很大劲,终于和地外文明联系上。我们地球人通常有10根手指,因此我们习惯用10进制的数,而外星人的手指有16跟、8根等不等的数目,因此他们使用与我们不同的进制。为了方便沟通,需要你开发一款工具,把地球人的10进制转换成外星人的R进制形式。
输入描述:
输入有多行。
每行包括两个正整数n和R,其中2≤R≤16。
输入直到文件结束为止。
输入例子:
1989 21119 16
输出例子:
1111100010145F
思路:
由于进制转换后,每一位需要倒置输出,所以可以考虑用递归的方法
代码:
#include <stdio.h>void tenToR(int n,int r);int main(void){ int n,r; while(scanf("%d%d",&n,&r)!=EOF){ tenToR(n,r); printf("\n"); } return 0;}void tenToR(int n,int r){ if(n){ int remainder = n%r; tenToR(n/r,r); if(remainder<10) printf("%d",remainder); else printf("%c",remainder-10+'A'); }}
0 0
- 进制转换[PAT]
- pat:1022<进制转换>
- PAT B1022 D进制转换
- PAT 1015 Reversible Primes(进制转换+素数)
- PAT-1058 A+B in Hogwarts (进制转换)
- PAT-PAT (Advanced Level) Practise 1027. Colors in Mars (20) (简单进制转换)【一星级】
- PAT乙级 1022. D进制的A+B (20) 进制转换
- PAT (Advanced Level) 1027. Colors in Mars (20) 进制转换
- 1027. Colors in Mars (20)【进制转换】——PAT (Advanced Level) Practise
- PAT (Advanced Level) Practise 1015. Reversible Primes (20) 素数筛法 进制转换
- 表达式转换【PAT】
- PAT 表达式转换
- pat 表达式转换
- PAT表达式转换
- PAT程序能力考题——甲级1010(比较任意进制转换的两个数字,是否相等)
- 【PAT】进制回文数
- pat:1005<advanced> <字符转换为单词>
- pat Data_stucture 表达式转换-栈的应用
- LoadRunner使用记录
- JZOJ 1460.无题noname
- ACM心理过程
- (转载)Android 最火的快速开发框架XUtils
- 使用ContentProvider读取系统联系人信息
- 进制转换[PAT]
- CodeForces NO.549A Face Detection
- MySQL主从复制原理
- CSAPP 3e Attack lab
- android 打造炫酷导航栏(仿UC头条)
- 归并排序
- 常浏览的博客和网站
- 最值得你所关注的10个C语言开源项目
- linux常用命令2(转载)