两道面试题——进制各位数之和
来源:互联网 发布:苹果版解压缩软件 编辑:程序博客网 时间:2024/06/15 15:44
1.1介绍
之前做了几道面试题,其中有两道类似的,都是求某进制各位数之和,因此写了一个递归函数,觉得比较好用特地再次记录一下。
1.2第一题
1,题目描述
2,解析
(1)下面的Data函数的参数为(10进制数num,要求转换的进制n,sum的初始值num%n),返回值为num转换成n进制后的各位数之和sum,如5转换成2进制为101,返回各位数之和为sum=1+0+1=2;5转换成3进制12,各位数之和为sum=1+2=3.
原理比较简单,十进制如何进位的,其他进制就是如何进位的,某一位大于进制数就递归该函数,小于就返回值。
(2)源码:
#include<iostream>using namespace std;//该函数比较重要int Data(int num,int n,int sum){ int count; count=num/n; if(count<n){ sum+=count; return sum; } else{ return sum+Data(count,n,count%n); }}int main (){ int i,j,k;//循环用 int mt,nt,m,n,r;//约分用 int arry;//十进制数 int vlaue;//最终和 cin>>arry; vlaue=0; for(j=2;j<=arry-1;j++){ vlaue+=Data(arry,j,arry%j); } //约分 m=vlaue; n=arry-2; r=n%m; while(r!=0) { n=m; m=r; r=n%m; } mt=vlaue/m,nt=arry-2/m; cout<<mt<<"/"<<nt; return 0;}
1.3第二题
1,题目描述
2,解析
(1)如果上一题明白,这一题就无须解释了
(2)源码:
#include<iostream>using namespace std;int Data(int num,int n,int sum){ int count; count=num/n; if(count<n){ sum+=count; return sum; } else{ return sum+Data(count,n,count%n); }}int main(){ int n,vlaue=0,he1,he2; int i,j; cin>>n; for(i=1;i<=n;i++){ he1=Data(i,10,i%10); he2=Data(i,2,i%2); if(he1==he2){ vlaue++; } } cout<<vlaue; return 0;}
1.4总结
这段代码就直接拿来用来,比较简单。参数为(10进制数num,要求转换的进制n,sum的初始值num%n)。
int Data(int num,int n,int sum){ int count; count=num/n; if(count<n){ sum+=count; return sum; } else{ return sum+Data(count,n,count%n); }}
阅读全文
0 0
- 两道面试题——进制各位数之和
- 各位数之和
- 分离各位数之和
- 【HUSTOJ】1006: 各位数之和
- 求一个数各位数之和
- 十进制数各位数字之和时间复杂度
- 求100的阶乘各位数之和
- Java 求整数各位数平方之和
- 计算一个数的各位之和
- 求一个三位正整数各位数之和
- 计算一个三位数各位数之和
- 一个整数的各位数之和
- 计算一个整数的各位数之和
- C语言实验——各位数字之和排序
- 1188C语言实验——各位数字之和排序
- 1188C语言实验——各位数字之和排序
- C语言实验——各位数字之和排序
- 2009: C语言实验——各位数字之和排序
- hdu 4990 Reading comprehension(矩阵乘法)
- 美国国家安全局如何分析通话数据
- Tomcat启动报错:org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalin
- unity3d实现一个魔方旋转展示
- 2016校招真题编程练习——微信红包(腾讯)
- 两道面试题——进制各位数之和
- 【动态规划】最长上升子序列及其相关思想
- 1018. Public Bike Management (30)
- 滑雪 POJ
- HDU_【2017 Multi-University Training Contest 2】——1001 Is Derek lying?
- LightOJ
- spintf定义与作用
- 7.29学习总结
- js学习—在canvas画布上的粒子扩散