PASCAL程序 如何打印(得到也可以)数字从1到9 无重复数字出现的所有9位数(如123456789 456789123)

[复制链接]
查看11 | 回复2 | 2011-2-14 22:09:48 | 显示全部楼层 |阅读模式
循环第一个数n,从123到329(因为最大到329,再大3*n就不是三位数了),然后算出2*n 3*n,看看这三个数是不是正好把1~9用了。程序:var i,a,b,j,ans:longint; ok:boolean; f:array[0..9]of boolean;begin for i:=123 to 329 dobegin
a:=2*i; b:=3*i;
fillchar(f,sizeof(f),false);//数组清零
f[i div 100]:=true; f[(i mod 100)div 10]:=true; f[i mod 10]:=true; f[a div...
回复

使用道具 举报

千问 | 2011-2-14 22:09:48 | 显示全部楼层
顺着题意编也就是几个for 循环,不过换个方向思考这题,因为都是3位数,我就枚举第一个数从100到333(只用到333,因为第三个数是3*n ,要使他是3位数那么n<=333),,假设第一个数为n,那么第二个数就是2*n,第三个数就是3*n;再判断3个数是否满足只用了1到9 这几个数并且每个数字只用了一次。。。。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行