免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > 各类编程 > 计算n位m进制所有整数的算法

计算n位m进制所有整数的算法

时间:2011-10-20 09:56来源: 整理:寂涯网络 点击:

 

算法来源:《the art of computer programming vol 4》 

算法的思路:

 

1、   将n为整数记作,a1a2…an  ,初始化为0…00。

 

2、   令j = n, 计算aj = aj + 1; 当aj 等于m-1时,向高位进1,此位设为0,对所有为都重复此步骤。直到所有为都遍历完,为之。

 

 

 

此算法的c语言实现:

 

 

 

 

void mixed_radix_num(int n, int radix) 

         int j; 

  

         int *a=(int *) malloc (sizeof (int) * (n + 1)); 

         if(!a) return; 

   

         for(j=0;j<=n;++j) 

              *(a+j)=0; 

         while(1){ 

                 print_num(a,n); 

                 j=n; 

                 while(*(a+j)==(radix-1)) 

                 { 

                         *(a+j)=0; 

                         j--; 

                 } 

                 if(j == 0) break; 

                 *(a+j)=*(a+j)+1; 

        } 

        free(a); 

        a=0; 

 

 

 

此代码的关键:对于n位整数,申请n+1个整数的空间,a[0]作为哨兵位。

本页地址 http://www.jybase.net/biancheng/20111018109.html

百度搜索更多

谷歌搜索更多

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com