1.计算原理
十进制转八进制的基本步骤是将十进制不断取余8,直到不能再取为止,然后倒序输出每个余数,即是最后的八进制结果。
以下为示例图
2.问题描述
对于输入的任意一个非负十进制整数n(0=<n<100000),打印输出与其等值的八进制数。
输入形式:非负十进制整数。
输出形式:相应十进制整数转换后的八进制正整数,若输入不符合要求,提示错误,重新输入。
3.代码实现
要实现这一功能,我们需要可以将余数存放于数组内,最后倒序输出数组即可输出结果,以下为具体代码。
#include <bits/stdc++.h>
using namespace std;
//进制转换函数
void transform(int num){
int store[100];//用于存储余数
int i=0;
while(num!=0){
store[i]=num%8; //取余顺序存入数组
i++;
num/=8;
}
for(i=i-1;i>=0;i--){ //倒序输出
cout<<store[i];
}
}
int main(){
int num;
cin>>num;
if(num>0 && num<100000){
transform(num);
cout<<endl;
}
else if(num==0){
cout<<0<<endl;
}
else{
printf("Error!\n");
cin>>num;
transform(num);
cout<<endl;
}
}