|
发表于 2007-5-1 21:23:49
|
显示全部楼层
#include<studio.h>
main()
{
int i;
int j;
int k;
char a[10];
for(i=0,i<10,i++)
{
a[0]=i;
for(j=1,j<10,j++)
{
for(k=1,k<10,k++)
{
a[k]=(a[0]+j)%10;
}
for(k=0,k<10,k++)
printf(a[k]);
}
}
}
我自己想的一个算法.你可以试一下!
睡了一觉发现上面那个算法完全错了,而且错的离谱。
这里说一下我想的另外一个算法。
首先,0-9十个数十位不重复组合,其最小数应该是:0123456789
然后开始循环加一,循环的终止点就是这个数字编程十一位之前。
所以每次生成完数字后都要先判断是不是十一位,如果是九位在输出的时候自动在前面加零
然后开始循环取对10余,判断每一位的数字是否有重复的,当然在取余后再除以10取商以备下次循环
当该数字每一位没有重复数字,而且小于11位时就输出
这样循环到最后0-9十个数十位不重复组合就全部取得了。
[ 本帖最后由 网际座山雕 于 2007-5-2 02:46 编辑 ] |
|