#练习题
##1.题
// 编写一个方法,求整数n的阶乘,例如5的阶乘是1*2*3*4*5。
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.print("输入一个数:");
int m=sum(input.nextInt());
System.out.println(m);
}
static int sum(int a) {
int f=1;
for(int b=1;b<=a;b++) {
f *=b;
}
return f;
}
1##2.题
/* 在一个有8个整数(18,25,7,36,13,2,89,63) 将数组中的元素逆序存放,
并拷贝到另一个字符数组中输出,再从小到大排列输出。 */
int[] a = { 18, 25, 7, 36, 13, 2, 89, 63 };
int[] c = new int[a.length];
int sum;
for (int b = 0; b < a.length / 2; b++) {
sum = a[b];
a[b] = a[a.length - b - 1];
a[a.length - b - 1] = sum;
}
for (int i = 0; i < a.length; i++) {
c[i] = a[i];
}
System.out.print(Arrays.toString(a));
System.out.println();
System.out.print(Arrays.toString(c));
System.out.println();
Arrays.sort(a);
System.out.println(Arrays.toString(a));
#周末作业
##1.
//使用循环输出100,95,90,85,80...5,
for (int b = 100; b >= 5; b--) {
if (b % 5 == 0) {
System.err.print(b+" ");
}
}
##2.
//编程计算1至50中是7的倍数的数值之和
int sum = 0;
for (int a = 1; a <= 50; a++) {
if (a % 7 == 0) {
sum += a;
}
}
System.out.println("1至50中是7的倍数的数值之和是:" + sum);
##3.没输出最大,最小值
// 输入一批整数,输出其中最大值和最小值,输入数字0结束循环,程序运行结束
Scanner input = new Scanner(System.in);
int max=Integer.MIN_VALUE;//将最小数赋给max
int min=Integer.MAX_VALUE;//将最大数赋给min
while (true) {
System.out.print("请输入一个整数(输入0结束):");
int a = input.nextInt();
if (a == 0) {
System.out.println("程序结束");
break;
}
if(max<a) {
max=a;
}
if(min>a) {
min=a;
}
}
System.out.println("最大值"+max);
System.out.println("最小值"+min);
##4.
/* 从键盘输入一位整数,当输入1-7时,显示下面对应的英文星期名缩写,
1.MON 2.TUE 3.WED 4.THU 5.FRI 6.SAT 7.SUN
输入其他数字提示用户重新输入,输入0时程序结束 */
Scanner input = new Scanner(System.in);
int b = 0;
while (true) {
System.out.print("请输入数字1-7(输入0结束)");
int a = input.nextInt();
switch (a) {
case 1:
System.out.println("今天是MON");
break;
case 2:
System.out.println("今天是TUE");
break;
case 3:
System.out.println("今天是WED");
break;
case 4:
System.out.println("今天是THU");
break;
case 5:
System.out.println("今天是FRI");
break;
case 6:
System.out.println("今天是SAT");
break;
case 7:
System.out.println("今天是SUN");
break;
}
if(a==0) {
System.out.println("程序结束!");
break;
}
}
##5.
// 鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几只
for (int x = 0; x <= 35; x++) {
for (int y = 0; y <= 35; y++) {
if (x + y == 35 && x * 2 + y * 4 == 94) {
System.out.println(x + "只鸡 " + y + "只兔");
}
}
}
##6.
/*开发一个标题为FlipFlop的游戏程序,它从1到100,遇到3的倍数就替换为单词Flip,
5的倍数就替换为单词Flop,既为3的倍数又为5的倍数则替换为单词 FlipFlop
其余情况下输出当前数字 */
System.out.println("\tFlipFlop");
for (int a = 1; a <= 100; a++) {
if (a % 3 == 0 && a % 5 == 0) {
System.out.print("FlipFlop" + " ");
continue;
} else if (a % 5 == 0) {
System.out.print("Flop" + " ");
continue;
} else if (a % 3 == 0) {
System.out.print("Flip" + " ");
continue;
}
System.out.print(a + " ");
}
##7.
/*一共30人,可能包括男人、女人、小孩,他们在一家饭馆吃饭共花了50先令,
其中每个男人花3先令,每个女人花2先令,每个小孩花1先令,问男、女、小孩各几人*/
int m, w, c;
for (c = 0; c <= 30; c++) {
for (w = 0; w <= 30; w++) {
for (m = 0; m <= 30; m++) {
if (m + w + c == 30 && m * 3 + w * 2 + c * 1 == 50) {
System.out.println(m + "个男人 " + w + "个女人 " + c + "个小孩");
}
}
}
}
##8.
这个程序运行后的结果sum的值为26
int sum=0,i;
for(i=1;i<=4;i++) {
switch(i) {
case 1:
sum=sum+2;
case 2:
sum=sum+4;
continue;
case 3:
sum=sum+16;
break;
}
}
System.out.println(sum);
##9.
// 依次输出五句话,然后将它逆序输出。
Scanner input = new Scanner(System.in);
System.out.println("请输入5句话");
String[] b = new String[5];
String sum;
for (int i = 0; i < 5; i++) {
System.out.print("第" + (i + 1) + "句话:");
b[i] = input.next();
}
System.out.println(Arrays.toString(b));
for (int c = 0; c < b.length / 2; c++) {
sum = b[c];
b[c] = b[b.length - c - 1];
b[b.length - c - 1] = sum;
}
System.out.println(Arrays.toString(b));
##10.
/*某百货商场当日消费积分最高的八名顾客,他们的积分分别是:18、25、7、36、13、
2、89、63,编写程序找出最低的积分及它在数组中的原始位置。*/
int[] a = { 18, 25, 7, 36, 13, 2, 89, 63 };
int min = a[0];
int y = 0;
for (int b = 1; b < a.length; b++) {
if (min > a[b]) {
min = a[b];
y = b;
}
}
System.out.println("积分最低的是:" + min);
System.out.println(min + "的下标是:" + y);
##11.
/*从键盘输入10个数,合法值为1、2、3,不是这三个数为非法数字,
编写程序统计每个整数和非法数字的个数。*/
Scanner input = new Scanner(System.in);
System.out.println("请输入10个数");
int[] nums = new int[10];
int j = 0, i = 0, m = 0;
for (int a = 0; a < nums.length; a++) {
nums[a] = input.nextInt();
if (nums[a] == 1) {
j += 1;
} else if (nums[a] == 2) {
i += 2;
} else if (nums[a] == 3) {
m += 3;
}
}
System.out.println("输入的10个数为:" + Arrays.toString(nums));
System.out.println("数字1的个数:" + j / 1);
System.out.println("数字2的个数:" + i / 2);
System.out.println("数字3的个数:" + m / 3);
System.out.println("非法数字的个数:" + (10 - m / 3 - i / 2 - j / 1));
##12.
/*有一个长度为5的数组,要求创建一个新数组newArray[]新数组中元素与原数组的
元素逆序,并且如果原数组中的元素值小于0在新数组中按0储存*/
Scanner input = new Scanner(System.in);
int[] a = new int[5];
int[] newArray = new int[a.length];
int sum;
for (int i = 0; i < a.length; i++) {
a[i] = input.nextInt();
if (a[i] < 0) {
a[i] = 0;
}
newArray[i] = a[i];
}
System.out.println(Arrays.toString(newArray));
for (int j = 0; j < a.length / 2; j++) {
sum = a[j];
newArray[j] = newArray[a.length - j - 1];
newArray[a.length - j - 1] = sum;
}
System.out.println(Arrays.toString(newArray));