9718 整数因子分解_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > 9718 整数因子分解

9718 整数因子分解

 2014/10/22 21:42:07  DannyYo  程序员俱乐部  我要评论(0)
  • 摘要:9718整数因子分解提示此题因子讲顺序的.第一个因子可能是2~n之间的数.比如对12而言,第一个因子可能是2,3,4,6,12.将第一个因子为2的分解个数,加上第一个因子为3的分解个数,...,直至加到第一个因子为12的分解个数.而第一个因子为2的分解个数又是多少呢?是6(因为12/2=6)的分解个数,递归求解!可用“递归”和“备忘录方法”两种方法分别求解,并测试一下效率。递归实现整数因子分解的计数。假设对正整数n的因子分解计数为solve(n)。1)当n=1时,计数加1。2)当n>1时
  • 标签:
9718 整数因子分解 提示 ? 此题因子讲顺序的.第一个因子可能是2~n之间的数. 比如对12而言,第一个因子可能是2,3,4,6,12. ? 将第一个因子为2的分解个数,加上第一个因子为3的分解个数,...,直至加到第一个因子为12的分解个数. ? 而第一个因子为2的分解个数又是多少呢?是6(因为12/2=6)的分解个数,递归求解! ? 可用“递归”和“备忘录方法”两种方法分别求解,并测试一下效率。 ? 递归实现整数因子分解的计数。假设对正整数n的因子分解计数为solve(n)。 1)当n=1时,计数加1。 2)当n>1时,对n的每个因子i,计算solve(n/i)。 MyCode: #include <iostream> ? using namespace std; int res=0; int resolve(int n){ if(n==1){ ? ? res++; }else{ ? ? for(int i=2;i<=n;i++){ ? ? ? ? if(n%i==0) ? ? ?resolve(n/i); ? ? } } } int main() { ? ?int n; ? ? ? cin>>n; ? ? resolve(n); ? ? cout<<res; ? ? return 0; }

?

  • 相关文章
发表评论
用户名: 匿名