数字逆转和数的约数个数

来源:互联网 发布:网络上很污的词语意思 编辑:程序博客网 时间:2024/05/05 05:46

两个简单数学问题的精巧算法

      问题一:输入一个数字,将该数字逆转并输出。例如输入:123456789 输出:987654321

[c-sharp] view plaincopy
  1. //精巧算法1:数字的逆转   
  2. int reserve(int a){  
  3.     int b=0,t=a;  
  4.     while(t){  
  5.         b*=10;  
  6.         b+=t%10;  
  7.         t/=10;  
  8.     }  
  9.     return b;  
  10. }  
  11. //算法应用:判断是否是回文数,a=reserve(a),则说明该数字是回文数  

       问题二:输入一个数字n,求其约数个数。例如输入:10 输出:4

[c-sharp] view plaincopy
  1. //算法:求解整n的因子个数   
  2. #define Max 5001  
  3. int cnt[Max];//cnt[i]表示整数i的约数个数   
  4. void get_cnt(){  
  5.     memset(cnt,0,sizeof(cnt));  
  6.     for(int i=1;i<Max;i++)  
  7.       for(int j=i;j<Max;j+=i)  
  8.         cnt[j]++;  
  9. }  
  10. //当让你可以通过素因子来求解总约数的个数,相对会高效些  
  11. //但但是上述方法确实实现起来太简单了 

原文来自:http://blog.csdn.net/once_hnu/article/details/6302915

0 0