C语言将十进制转化为八进制

#方法一:投机取巧

利用C语言的printf中的%o来取巧

#include <bits/stdc++.h>
using namespace std;
int main() {
    int a;
    cin>>a;
    printf("%o\n",a);
    return 0;
}
//%o用于以八进制输出数字
//骚操作!

#方法二:递归

使用递归算法来转化进制

#include <bits/stdc++.h>
using namespace std;
int js(int n) 
{
    if(n<8)return n;
    else return n%8+10*(js(n/8));
}
int main() 
{
    int n;
    cin>>n;
    cout<<js(n)<<endl;
    return 0;
}
//牛逼,我最开始硬生生没看懂!
//这个算法可以同理应用到n进制转m进制,只需要更改代码中的10和8😀

#方法三:while循环

使用while循环,最容易想到的方法

#include<bits/stdc++.h>
using namespace std;
long long sum=0,b=1,x=1;
int a;
int main()
{
    cin>>a;
    while(a!=0)
    {
        sum=sum+(a%8)*x;
        a/=8;
        x*=10;
    }
    cout<<sum<<endl;
    return 0;
}
//特地long long 声明变量,防止出现数值溢出的情况!