2190 - 十进制转换为八进制
时间限制 : 1 秒
内存限制 : 64 MB
输入1个十进制整数, 输出相应的八进制数. 如输入:2013, 输出:3735.
题目输入
有多行数据,每一行数据N的数值范围在[0, 231 - 1].
(用for 或while循环实现,不用API提供的直接转换方法)
题目输出
每一行输出N所对应的八进制。
输入/输出样例
输入格式
2012 2013
输出格式
3734 3735
C语言解答
#include<stdio.h> int main(){ int num; while(scanf("%d",&num)!=EOF){ int i; int b[50]; for(i=0;i>=0;i++) { b[i]=num%8; if(num/8==0) break; num=num/8; } for(i=i;i>=0;i--) { printf("%d",b[i]); } printf("\n"); } }
C++解答
#include<iostream> using namespace std; void change(int m){ int i,k=0,a[30]; if(m==0){ a[k++]=0; } else{ while(m!=0){ a[k++]=m%8; m=m/8; } } for(i=k-1;i>=0;i--) cout<<a[i]; cout<<endl; } int main(){ int m; while(cin>>m){ change(m); } return 0; }
Java解答
public class Main { public static void main(String[] args) { java.util.Scanner input = new java.util.Scanner(System.in); do { int number1 = input.nextInt(); String number2 =""; int number3 = number1; if(number3==0) System.out.println(0); while(number1!=0) { int yushu = number1 % 8; number2=CHAR(yushu) + number2; number1 = number1/8; } if (number3!=0) System.out.println(number2); }while(input.hasNextInt()); } public static char CHAR(int n) { if(n>=0&&n<=9){ char m = (char)(n+'0'); return m; } else { char m = (char)('A'+(n-10)); return m; } } }