题目:使用for循环,在控制台输出由4.5.6.7能组成多少个互不相同且无重复数字的三位数?都是多少?
public static void main(String[] args) {
// TODO 自动生成的方法存根
int value;//计算互不相同且无重复数字的三位数的数量
value=4*3*2;
int sum=0;
System.out.println("能组成"+value+"个互不相同且无重复数字的三位数");
for(int i=4;i<=7;i++)
{
sum=i*100;
for(int j=4;j<=7;j++)
{
if(i==j)
{
j++;
continue ;
}
sum=sum+j*10;
for(int k=4;k<=7;k++)
{
if(i==k||j==k)
{
k++;
continue ;
}
sum=sum+k;
System.out.println(sum);
}
}
}
}
经过断点调试发现第三个for循环有问题,哪位能指出我的算法错误?
1.continue之前不要执行++操作,这里不仅是第3层有问题,第2层也是错的
2.如果不是要求你输出所有组合,而只是问组合数,直接套用排列组合公式就行了
第三个for循环中if判断成立直接continue就可以了,for循环自己会k++