1,求
1+2+…+n,
要求不能使用乘除法、
for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。
2,求Fibonacci第N项
class F { public void Run() { int result = DynamicProgramming(10); } private int DynamicProgramming(int n) { if (n <= 0) return 0; if (n == 1 || n == 2) return 1; int nMinus2 = 1; int nMinus1 = 1; int nResult = 0; for (int i = 3; i <= n; i++) { nResult = nMinus1 + nMinus2; nMinus2 = nMinus1; nMinus1 = nResult; } return nResult; } }
备忘录:
hash_map <int,int> cache; int fun(int n){ if(n <= 0)return 0; if(n == 1)return 1; if(n == 2)return 2; if(cache.find(n) != cache.end()){ return cache[n]; } else { int result = fun( n-1 ) + fun ( n-2 ); cache.insert( make_pair( n,result)); return result; } }
3, 寻找丑数(运算)。
题目:我们把只包含因子
2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,
但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。
求按从小到大的顺序的第
1500个丑数。
4, 输出1到最大的N位数(运算)
题目:输入数字
n,按顺序输出从1最大的n位10进制数。比如输入3,
则输出1、2、3一直到最大的3位数即999。
5,实现函数double Power(double base, int exponent),求base的exponent次方。
不需要考虑溢出。
6,求正整数n所有可能的和式的组合(如;4=1+1+1+1、1+1+2、1+3、2+1+1、2+2)
7,.一个数是否是另一个数的平方
8,N进制换成M进制
9,写一个函数,输出前N个素数,函数原型:void print_prime(int N); 不需要考虑整数的溢出问题,也不需要使用大数处理算法。