用java编写:1,2,3,4四个数字可以组成多少不重复的三位数(每个三位数中不能出现重复的数字)
publicclassExam1{publicstaticvoidmain(String[]are){for(inti=1;i<=4;i++){for(intj=1;j<...
public class Exam1 {
public static void main(String [] are){
for(int i=1;i<=4;i++){
for(int j=1;j<=4 && j!=i;j++){
for(int k=1;k<=4 && k!=i && k!=j;k++){
int a=100*i+10*j+k;
System.out.print(a+" ");
}
}
}
}
}
这样写为什么是错的,求解释 展开
public static void main(String [] are){
for(int i=1;i<=4;i++){
for(int j=1;j<=4 && j!=i;j++){
for(int k=1;k<=4 && k!=i && k!=j;k++){
int a=100*i+10*j+k;
System.out.print(a+" ");
}
}
}
}
}
这样写为什么是错的,求解释 展开
7个回答
展开全部
// 1,2,3,4四个数可以组成多少个无重复数字的三位数
//考察多重循环
int count = 0;//计数器
for (int i = 1; i <= 4; i++) {//遍历个位的所有数
for (int j = 1; j <= 4; j++) {//遍历十位的所有数
for (int k = 1; k <= 4; k++) {//遍历百位的所有数
if (k != j && k != i && j != i) {//如果个位,十位,百位上的数都不相等
count++;//记录组成的个数
System.out.println(k * 100 + j * 10 + i);//打印组成后的三位数
}
}
}
}
System.out.println(count);//打印组成的三位数的个数
}
//考察多重循环
int count = 0;//计数器
for (int i = 1; i <= 4; i++) {//遍历个位的所有数
for (int j = 1; j <= 4; j++) {//遍历十位的所有数
for (int k = 1; k <= 4; k++) {//遍历百位的所有数
if (k != j && k != i && j != i) {//如果个位,十位,百位上的数都不相等
count++;//记录组成的个数
System.out.println(k * 100 + j * 10 + i);//打印组成后的三位数
}
}
}
}
System.out.println(count);//打印组成的三位数的个数
}
展开全部
for(int j=1;j<=4 && j!=i;j++)中判断了j!=i才会继续执行,所以当i=1,j=1时直接跳过了循环从而使i++,建议将 j!=i的判断放在for中用if判断,第三层循环同理
追问
哦。。。懂了,谢了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class ShuziDemo {
//用1,2,3,4组成不重复的三位数
public static void main(String[] args) {
int i,j,k,sum=0;
for( i=1;i<=4;i++){
for( j=1;j<=4;j++){
if(j==i){
continue;
}
for( k=1;k<=4;k++){
if(k==i||k==j){
continue;
}
int a=100*i+10*j+k;
System.out.print(a+" ");
sum = sum+1;
}
}
}
System.out.println("");
System.out.print("一共有"+sum+"种");
}
}
//用1,2,3,4组成不重复的三位数
public static void main(String[] args) {
int i,j,k,sum=0;
for( i=1;i<=4;i++){
for( j=1;j<=4;j++){
if(j==i){
continue;
}
for( k=1;k<=4;k++){
if(k==i||k==j){
continue;
}
int a=100*i+10*j+k;
System.out.print(a+" ");
sum = sum+1;
}
}
}
System.out.println("");
System.out.print("一共有"+sum+"种");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for (int j=0;i<=4 && j!=i;j++)
当i==j==1的时候,这条循环就结束了,不会出现j=2的情况了
直接进入i==2,j==1的情况,所以是错的
当i==j==1的时候,这条循环就结束了,不会出现j=2的情况了
直接进入i==2,j==1的情况,所以是错的
追问
当i==j==1的时候,循环体不予执行,不是应该是j++嘛,为什么这句不执行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public void t1(){
int count = 0;
for(int i=1;i<=4;i++){
for (int j=1;j<=4;j++) {
for (int k =1;k<5;k++) {
if (i != j && i != k && j !=k) {
count++;
System.out.println(i + "" + j+""+k);
}
}
}
}
System.out.println(count);
}
int count = 0;
for(int i=1;i<=4;i++){
for (int j=1;j<=4;j++) {
for (int k =1;k<5;k++) {
if (i != j && i != k && j !=k) {
count++;
System.out.println(i + "" + j+""+k);
}
}
}
}
System.out.println(count);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询