[解题报告]Ternary
题目大意
题目原文:http://uva.onlinejudge.org/external/111/11185.pdf
背景:
给你十进制的数字 N,请你把他转换成 3 进制。
intput
输入包含多组测试数据。每组测试数据一列有1个整数 N(0<= N < 1000000001)
当 N<0 时,代表输入结束。
output
每组测试数据输出一列,输出 N 的3 进位表示。
Sample Input Output for Sample Input
10 100 1000 -1 |
101 10201 1101001 |
算法:
遵循进制转化原则,进行转化。
代码:
这里附上我的代码,你可以去这里提交你的代码验证你的代码是否正确。
#include<stdio.h> int main(void) { long n; int i,a[1000]; while(scanf("%ld",&n)!=EOF) { if(n < 0)break; if(n<3)printf("%d\n",n); else { for(i=0;;i++) { if(n<3) { a[i]=n; break; } a[i]=n%3; n=n/3; } for(;i>=0;i--) printf("%d",a[i]); printf("\n"); } } return 0; }