1172
题目描述
输入一个十进制整数,把这个数转换为八进制的数输出。
输入要求
输入一个十进制整数。
输出要求
输出转化后的八进制数,各数字间空一格,最后一个数据后面也有空格,再换行。
输入样例
57
输出样例
7 1
用n%8计算十进制转化八进制,用数组存储,再输出
#include<stdio.h>
int main(){
int n,b[100],i=0,k=0;
scanf("%d",&n);
while(n){
b[i]=n%8; //对于整数部分,用被除数反复除以 8,
除第一次外,每次除以 8 均取前一次商的整数部分作被除数并依次记下每次的余数。
另外,所得到的商的最后一位余数是所求二进制数的最高位。
i++;
n=n/8;
}
for(k=i-1;k>=0;k--){
printf("%d ",b[k]);
}
printf("\n");
return 0;
}
题目描述
输入一个十进制正整数,把这个数转换为n进制。
输入要求
输入两个整数num和n,num表示要转换的数,n表示要转换成的进制。如10 2表示要求将十进制数10转换成二进制数。(2<=n<17)
输出要求
输出转化后的进制数,每个数字之后跟一空格,如果数字大于9,则输出大写英文字母(10-16分别对应A-F)。
输入样例
10 2
输出样例
1 0 1 0
#include<stdio.h>
int main(){
int n,i=0,k=0,num;
char b[100];
scanf("%d%d",&num,&n);
while(num){
b[i]=num%n;
i++;
num=num/n;
}
for(k=i-1;k>=0;k--){
if(b[k]>=10&&b[k]<=16){
printf("%X ",b[k]); //%X是转换为大写的十六进制,%x是小写的十六进制
}
else{
printf("%d ",b[k]);
}
}
printf("\n");
return 0;
}