C++ 中如何求1000至10000中所有各位不相同的数,如1234
发布网友
发布时间:2022-04-30 12:50
我来回答
共2个回答
热心网友
时间:2022-06-22 08:19
int main()
{
for(int x=1;x<=9;x++)
{
for(int y=0;y<=9;y++)
for(int m=0;m<=9;m++)
for(int n=0;n<=9;n++)
if(x!=y&&x!=m&&x!=n&&y!=m&&y!=n&&m!=n)
cout<<x*1000+y*100+m*10+n<<" ";
cout<<endl;
}
return 0;
}
就这样咯,x是1到9,ymn都是0到9,最后不让x,y,m,n相等。
如果只是看看的话,可以直接cout<<xymn;这样,打印出来也是一样的。
用如果这些数字还用,就只能这样写了cout<<x*1000+y*100+m*10+n<<" ";
层次的话我没有用大括号,要不又是一大堆代码,
就是最后的cout<<endl是属于第一个for语句的
希望能帮到你!!
热心网友
时间:2022-06-22 08:19
设置四个变量a,b,c,d,可以证明最小的这样的数为1023,令a代表千位数,b代表百位数,c代表十位数,d代表个位数。
1.让d从0开始遍历,当d与前面的所有数不重复时,输出这个四位数;
2.如果d到达9,让c加1,检查c是否不和前面的数重复;
3.如果重复,c再加1,回到(2),如果不重复,d归零;
4.回到(1)。
5.当c,b都达到9时,重复和d一样的操作。
6.如果a=9,b=8,c=7,d=6,则所有满足条件的数都以找出,程序终止;