【京东】进制转换(C++机试2-1)
2016-09-05 22:34
260 查看
【京东】进制转换(C++机试2-1)
题目:方法一:
直接计算:#include<iostream> using namespace std; int numToBase(unsigned int num, unsigned int base) { int sum=0; while(num) { sum+=num%base; num/=base; } return sum; } int main() { unsigned int N,allSum=0; cin>>N; //边界处理 if(N==2) cout<<"2/1"<<endl; else if(N<2) return 0; else { for(int i=2; i<N; i++) { allSum+=numToBase(N,i); } cout<<allSum<<"/"<<N-2<<endl; } return 0; }
说明:题目中要求基为2~A-1,但未说明输入为1或2时该如何处理。
方法二:
#include<iostream> using namespace std; void to_base_n(unsigned long, unsigned int, int *); int main() { unsigned long number; while( cin>>number) { if(number>2) { int all=0; for(int i=2; i<number; i++) { int *sum=new int(0); to_base_n(number, i, sum); all+=*sum; } cout<<all<<"/"<<number-2<<endl; } else if(number==2) cout<<2<<"/"<<1<<endl; else return 0; } return 0; } void to_base_n(unsigned long n, unsigned int base, int *sum) //*recursive function { int i; i = n % base; *sum=*sum+i; if(n >= base) { to_base_n(n/base, base, sum); } //cout<<i<<endl; return ; }
相关文章推荐
- c++ 结构体位域操作 进制转换
- 在单链表的基础上用c++实现的链栈,并使用进制转换,表达式求值两个小程序来测试
- 京东拍拍网 笔试 搞java的去考C++ 苦逼
- C++的黑科技之进制转换
- C++按格式接收输入字符(京东,滴滴,360笔试必用)
- 机试算法讲解:第20题 一起重温小学题:进制转换
- 转:[C/C++]2014年7月华为校招机试真题(一)
- 乱序数列按序输出 (4.2阿里C++机试最后一题)()
- C++面向对象思想下的进制转换
- C++小程序(进制转换和排序算法)
- c++ 进制转换
- [C/C++]2014年7月华为校招机试真题(一)
- [C/C++]2014年7月华为校招机试真题(一)
- C++第17周项目4 数组用于进制转换
- c++递归实现进制转换
- C++ 进制转换(HDUOJ 2031)
- C++数据结构--栈的应用--进制转换
- C++实现任意进制转换
- C++按格式接收输入字符(京东,滴滴,360笔试必用)
- [C/C++]2014年7月华为校招机试真题(一)