这是一个编程题模板。
编程实现将任意的十进制整数N转换成R进制数(R在2-16之间)。N<0则直接退出。
输入格式:
一行中输入两个数分别是N与R,两者之间以空格隔开。
输出格式:
将转换后的R进行数。
输入样例1:
在这里给出一组输入。例如:
23 2
输出样例1:
在这里给出相应的输出。例如:
10111
输入样例2:
在这里给出一组输入。例如:
23 8
输出样例2:
在这里给出相应的输出。例如:
27
输入样例3:
在这里给出一组输入。例如:
123 16
输出样例3:
在这里给出相应的输出。例如:
7B
分析:c里面10转8/16都特别容易只需要格式化输出就行
十转八: %o
十转十六:%x小写的x输出的字母就是小写;大写的输出就是大写
十进制如何转换成二进制呢?
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,r;
scanf("%d %d",&n,&r);
if(n<0)
{
return 0;
}
if(r==2)
{
if(n==0)
{
printf("%d",0);
return 0;
}
int bin[100];
int i=0,j;
while(n!=0)
{
bin[i]=n%2;
n=n/2;
i++;
}
for(j=i-1;j>=0;j--)
{
printf("%u",bin[j]);
}
}
else if(r==8)
{
printf("%o",n);
}
else if(r==16)
{
printf("%X",n);
}
}