第一题——第七题
package edu;
import java.util.Scanner;
public class Test_01_07 {
public static void main(String[] args) {
/*
* 1.求1至1000之间满足
* “用3除余2;用5除余3;用7除余2”的数,
* 且一行只打印5个数
*/
int index = 0;
for(int i = 1;i < 1000;i++) {
if(i % 3 == 2 && i % 5 == 3 && i % 7 == 2) {
System.out.print(i + "\t");
index++;
if(index % 5 ==0) {
System.out.println();
}
}
}
System.out.println("**************************");
/*
* 2.求1-3+5-7+ …… -99+101的值
*/
int sum = 0;
for(int i = 1;i < 101;i += 2) {
if (i % 2 == 0){
sum -= i;
}else {
sum += i;
}
}
System.out.println("最终结果为:" + sum);
System.out.println("**************************");
/*
* 3.打印出所有的“水仙花数”,所谓“水仙花数”是指
* 一个三位数,其各位数字立方和等于该数本身
*/
for(int num = 100;num < 1000;num++) {
int num1 = num % 10;
int num2 = num / 10 % 10;
int num3 = num / 100;
double num4 = Math.pow(num1,3);
double num5 = Math.pow(num2,3);
double num6 = Math.pow(num3,3);
if(num4 + num5 + num6 == num) {
System.out.println("三位长度的水仙花数有:" + num);
}
}
System.out.println("**************************");
/*
* 4.输入两个正整数m和n,求其最大公约数和最小公倍数
*/
System.out.println("请输入两个正整数:");
Scanner input = new Scanner(System.in);
int m = input.nextInt(),n = input.nextInt();
input.close();
if(m < n) {
int temp = m;
m = n;
n = temp;
}
if(m % n == 0) {
System.out.println("m和n的最大公约数为:" + n);
System.out.println("m和n的最大公倍数为:" + m);
}else{
int a = m,b= n;
while(n > 0) {
int temp1 = m % n;
m = n;
n = temp1;
}
System.out.println("m和n的最大公约数为:" + m);
System.out.println("m和n的最大公倍数为:" + (a * b / m));
}
System.out.println("**************************");
/*
* 5.百元百鸡问题:公鸡5元一只,母鸡3元一只,3只小鸡1元,
* 如果用100元钱,买100只鸡,不佘不欠,
* 可以买公鸡,母鸡,小鸡,各多少只
*/
int num_cock,num_chick ;
for(num_cock = 1;num_cock < 20;num_cock++) {
for(num_chick = 3;num_chick < 300;num_chick += 3) {
if(num_cock * 5 + num_chick / 3 +(100-num_cock-num_chick) * 3 == 100 && 100 - num_cock - num_chick > 0) {
System.out.printf("公鸡:%d,母鸡:%d,小鸡:%d\n",num_cock,(100 - num_cock - num_chick),num_chick);
}
}
}
System.out.println("**************************");
/*
* 6.编写一个Java应用程序,用循环结构打印如下的数值列表:
* N 10*N 100*N 1000*N
* 1 10 100 1000
* 2 20 200 2000
* 3 30 300 3000
* 4 40 400 4000
* 5 50 500 5000
*/
int floor;
for(floor = 0;floor < 6;floor++) {
if(floor == 0) {
for(int i = 0;i < 4;i++) {
int multiple = i * 10;
System.out.printf("%d*N\t",multiple);
}System.out.println();
}else {
int index1 = 0;
for(int i = 1;i < 5;i++) {
int multiple = floor * (int)(Math.pow(10,i-1));
System.out.printf("%d\t",multiple);
index1++;
if(index1 == 4) {
System.out.println();
}
}
}
}
System.out.println("**************************");
/*
* 7.打印2到10000的所有素数,每行显示8个素数
*/
System.out.println("2到10000的所有素数有:\n");
int i,j;
int count = 1;
for(i = 2;i <= 10000;i++) {
for(j = 2;j < i;j++) {
if(i % j == 0)
break;
}
if(j >= i) {
System.out.printf("%d\t",i);
count++;
if(count % 8 == 0) {
System.out.println("");
}
}
}
}
}
第八题——第十四题
import java.util.Scanner;
public class Test_08_14 {
public static void main(String[] args) {
/*
* 8.3000米长的绳子,每天减一半,问,需要多少天,绳子会小于5米?
*/
int len = 3000,count = 0;
boolean t = true;
while(t) {
len /= 2;
count++;
if(len<=5) {
t = false;
System.out.printf("小于5m需要:%d 天",count);
}
}
/*
* 9.显示从101到2100期间所有的闰年,每行显示10个,之间用制表符分割
*/
int count1 = 0;
System.out.println("101到2100之间的闰年有:");
for(int year = 101;year <= 2100;year++) {
if(year % 4 == 0 && year % 100 != 0 ||year % 400 == 0) {
count1++;
System.out.printf("%d\t",year);
if(count1 % 10 == 0) {
System.out.println("");
}
}
}
/*
* 10.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
* 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
* 以后每天早上都吃了前一天剩下的一半零一个。
* 到第十天早上在想吃时,就只剩一个桃子了。求第一天共摘了多少个桃子?
*/
int x = 1;
for(int day = 10;day > 1;day--) {
x = (x + 1) * 2;
}
System.out.printf("第一天摘了:%d 个桃子",x);
/*
* 11.养老无忧计划:以目前的生活水平想要无忧养老需要存够600万养老金,
* 假设你每年可以存N万,年利率为3%,问需要做牛做马多少年?
*/
System.out.println("请输入你每年能存的钱(万元):");
Scanner input = new Scanner(System.in);
int N = input.nextInt();
double all_salary = 0;
int work_year = 0;
boolean t1 = true;
while(t1) {
work_year++;
all_salary = all_salary + (all_salary * 0.03) + N;
if(all_salary >= 600) {
t1 = false;
System.out.printf("你需要做牛做马 %d 年",work_year);
}
}
/*
* 12.鸡兔同笼:今有雉(鸡)兔同笼,上有三十五头,下有九十四足。问雉兔各几何。
*/
int num_rabbit = 0;
int num_chick = 0;
for(;num_rabbit < 35;num_rabbit++) {
num_chick = (94 - num_rabbit * 4) / 2;
if(num_rabbit + num_chick == 35) {
System.out.printf("笼子里有兔子:%d 只,有鸡:%d 只",num_rabbit,num_chick);
break;
}
}
/*
* 13.有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。
* 问第4个人岁数,他说比第3个人大2岁。问第3个人,又说比第2人大2岁。
* 问第2个人,说比第1个人大2岁。最后问第1个人,他说是10岁。
* 请问第五个人多大?
*/
int age = 10;
for(int i = 1;i < 5;i++) {
age = age + 2;
}
System.out.printf("第5个人:%d 岁",age);
/*
* 14.有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
*/
int count2 = 0;
for(int i = 1 ;i <= 4;i++) {
for(int j = 1;j <= 4 ;j++) {
for(int k = 1;k <= 4;k++) {
if(i != j && j != k && k != i) {
System.out.printf("%d\t\n",i*100 + j*10 + k);
count2++;
}
}
}
}
System.out.printf("总共有:%d 种组合方式",count2);
}
}