//那个oct的也真的是很6了 #include<iostream> using namespace std; int main(){ int n; while(cin>>n){ int a[100]={0},count=0; while(n>0){ a[count++]=n%8; n/=8; } for(int i=count-1;i>=0;i--) cout<<a[i]; cout<<endl; } }
package com.speical.first;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 八进制
*
* 其实此模板适合整数类型范围内所有的进制问题
* 思路就是:
* 不断对原数取进制的余数,然后除以进制缩小数
* 直到原数为0
* 然后最后得到的余数作为高位,之前得到的余数为低位组成我们所要转换后的数
* @author Special
* @time 2018/02/11 22:20:23
*/
public class Pro227 {
static final int SIZE = 8;
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
while(input.hasNext()) {
int num = input.nextInt();
List<Integer> octal = new ArrayList<>();
do {
octal.add(num % SIZE);
num /= SIZE;
}while(num != 0);
for(int i = octal.size() - 1; i >= 0; i--) {
System.out.print(octal.get(i));
}
System.out.println();
}
}
}
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main{ public static void main(String[] args) { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); String str; try { while ((str = bufferedReader.readLine())!= null){ System.out.println(Integer.toOctalString(Integer.parseInt(str))); } } catch (IOException e) { e.printStackTrace(); } } }
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
int k,ss=0,result=0; //注意初始化要在每次输入数字n之后,不然会累加
while(n) //假设输入为23
{
k=n%8; //第一次:k=7 第二次:k=2
result+=pow(10,ss)*k;// 第一次:result=7 第二次:result=7+20=27 ss++; //ss=1
n=n/8; //n=2
}
cout<<result<<endl;
}
}