描述:把任一给定的十进制正整数转换成八进制数输出。
- 方法一:指针
#include <bits/stdc++.h>
using namespace std;
int main()
{
int d;
vector<int> vec;
cin>>d;
while (d)
{
vec.push_back(d%8);
d=d/8;
}
for(vector<int>::iterator ip=vec.end()-1;ip>=vec.begin();)
{
cout<<*ip--;
}
cout<<endl;
return 0;
}
-
方法二:print(“%o”)
这个是一种输出方法,只能用作直接输出,解题不常用
#include<bits/stdc++.h>
using namespace std;
int a;
int main(){
cin>>a;
printf("%o\n", a); // 八进制
return 0;
}
- 方法三:字符串
#include<bits/stdc++.h>
using namespace std;
void a(int n,int s)
{
int c[101];
int b=0;
while(n)
{
b++;
c[b]=n%s;
n/=s;
}
if(s>10)
{
for(int i=b;i>1;i--)
{
cout<<c[i];
}
switch(c[1]%10)
{
case 1:case 2:case 3:case 4:case 5:case 0:
{
cout<<char(c[1]+55);
exit(0);
}
}
cout<<c[1];
}
else
{
{
for(int i=b;i>=1;i--)
{
cout<<c[i];
}
}
}
}
int main()
{
int n,s;
cin>>n;
s=8;
a(n,s);
cout<<endl;
return 0;
}
版权声明:本文为ebirth原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。