设为首页 加入收藏

TOP

计算n位m进制所有整数的算法
2014-11-23 23:24:14 来源: 作者: 【 】 浏览:1
Tags:计算 n位 进制 所有 整数 算法

算法来源:《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]作为哨兵位。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言文件操作解析(三) 下一篇正则表达式c语言经典实现

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: