小弟有些不会,请各位大佬留意,帮帮忙(^\/^!)
输出:所有满足要求的数字。
【样例输出】
102 103 120 123 130 132 201 203 210 213 230 231 301 302 310 312 320
321
for (int i = 1; i <=3; i++)
for (int j = 1; j <=3; j++)
for (int k = 1; k <=3; k++)
{
if (i!=j&&j!=k&&i!=k)
printf("%d ", i * 100+j*10+k);
}
#include<iostream>
using namespace std;
int main()
{
for (int i = 1; i <=3; i++)
for (int j = 0; j <=3; j++)
for (int k = 0; k <=3; k++)
{
if (i!=j&&j!=k&&i!=k)
cout<<" "<<i*100+j*10+k;
}
return 0;
}
使用for循环即可
三个for循环嵌套,每个循环从0到3
分别取出个位十位百位
提取十位的时候判断下当前的数是否等于个位的数
百位同理
最后百位的数*100+十位*10+个位 然后输出就是了
思路就是这,代码思考下 很容易的
1.稍稍修改一下楼上的,后面两个for循环从0开始;
2.不要采纳我的,因为我是从别人答案中修改的;
for (int i = 1; i <=3; i++)
for (int j = 0; j <=3; j++)
for (int k = 0; k <=3; k++)
{
if (i!=j&&j!=k&&i!=k)
printf("%d ", i * 100+j*10+k);
}
int main()
{
int x,y,z;
for (x=0;x<=3;x++)
{
for (y=0;y<=3;y++)
{
for (z=0;z<=3;z++)
{
if(x!=y&&y!=z&&z!=x)
{
cout<<x<<y<<z<<endl;
}
}
}
}
return 0;
}
#include <iostream>
using namespace std;
int main(){
for (int i = 1; i <=3; i++){
for (int j = 0; j <=3; j++){
for (int k = 0; k <=3; k++){
if (i != j&&j != k&&i != k){
cout<<i*100+j*10+k<<" ";
}
}
}
}
return 0;
}