FZU 1477 进制转换
2009-07-19 09:24
267 查看
进制转化
解题:
用的土方法,先判定a,b是否相等,这是特殊情况。
再取模存进数组,然后a=a/b再循环,直到a<b,最后在循环外再执行一次存储。逆序输出所需要的值。
网上有更好的方法,用的递归,网址http://blog.csdn.net/abao_/archive/2008/07/05/2615557.aspx
有些东西是需要深思。
Time Limit:1s | Memory limit:32M |
Accepted Submit:449 | Total Submit:1141 |
输入十进制数n(0<=n<=10000),请输出它对应的k(2<=k<=36)进制数。 10,11…分别用A, B … 代替。 输入数据 本题有多组输入数据,你必须处理到EOF为止. 每组数据占一行,有2个整数n,k 输出数据 输出n对应的k进制数,一个数一行。 输入样例 3 2 4 3 15 16 输出样例 11 11 F Original: FOJ月赛-2007年3月 |
用的土方法,先判定a,b是否相等,这是特殊情况。
再取模存进数组,然后a=a/b再循环,直到a<b,最后在循环外再执行一次存储。逆序输出所需要的值。
网上有更好的方法,用的递归,网址http://blog.csdn.net/abao_/archive/2008/07/05/2615557.aspx
有些东西是需要深思。
#include <iostream> #include <stdio.h> using namespace std; const int maxArray=64; int main() { int a,b,i=0; char number[maxArray]; memset(number,'/0',maxArray); while(cin>>a>>b) { if(a==b) { cout<<a/b*10<<endl; continue; } else { for(i=0;i<maxArray && a>=b;i++) { if(a%b<10) { number[i]=a%b+48; } else { number[i]=a%b+55; } a=a/b; } if(a%b<10) { number[i]=a%b+48; } else { number[i]=a%b+55; } } for(int j=maxArray-1;j>=0;j--) { if(number[j]=='/0') continue; cout<<number[j]; } memset(number,'/0',maxArray); cout<<endl; } return 0; }
相关文章推荐
- FZU 2102 Solve equation (进制转换)
- 杭电 2031 进制转换
- 进制转换
- 2131数据结构实验之栈一:进制转换
- C#-进制转换、基础语音、语句的总结与练习——★for循环:九九乘法表、三角形、菱形★
- 进制转换
- FZU 2150 Fire Game ([kuangbin带你飞]专题一 简单搜索)
- 进制转换
- 进制转换(各进制的原理)
- P1017 进制转换
- java中的进制转换问题
- 进制转换
- c++ 进制转换,字母大小写转换,map按值排序 简单函数
- 小数进制转换
- C#超基础:进制转换
- 进制转换(十进制转二进制)
- 第十二周 OJ总结<2>--进制转换(十进制转二进制)
- 华为机试题:进制转换
- 进制转换(十进制转二进制)
- FZU 1759 欧拉函数 降幂公式