题目描述:
输入包括一个整数N(0<=N<=100000)。
输入描述:
可能有多组测试数据,对于每组数据,输出N的八进制表示数
输出描述:
可能有多组测试数据,对于每组数据,输出N的八进制表示数
代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void f(int x)
{
int temp=x,len=2;//用于估算10进制数转化为8进制数的位数 (至少1位,加上\0 =2)
while(temp)
{
temp/=8;
len++;
}
char *a=(char*)malloc(sizeof(char)*len);
memset(a,0,len);//清空
//除余法转换
temp=x;
int i=0;
a[0]=0+'0';//当x==0
while(temp)
{
a[i++]=temp%8+'0';
temp/=8;
}
len=strlen(a);
for(int i=len-1;i>=0;i--)
{
printf("%c",a[i]);
}
printf("\n");
}
int main()
{
int x;
while(scanf("%d",&x)!=EOF)
{
//printf("%o\n",x); //这样写·太简单·
f(x);
}
return 0;
}