1.需求说明:综合运用嵌套if选择结构、switch选择结构实现商品换购功能。
public class Practice01 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入消费金额:");
double money = input.nextDouble();
double sumMoney = 0.0;
if(money >= 50) {
System.out.println("是否参加优惠换购活动:");
System.out.println("1:满50元,加2元换购百事可乐饮料一瓶");
System.out.println("2:满100元,加3元换购500ml可乐一瓶");
System.out.println("3:满100元,加10元换购5公斤面粉");
System.out.println("4:满200元,加10元换购1个苏波尔炒菜锅");
System.out.println("5:满200元,加20元换购欧莱雅爽肤水一瓶");
System.out.println("0:不换购");
System.out.print("请选择:");
int index = input.nextInt();
switch(index) {
case 1:
sumMoney = money + 2;
System.out.println("本次消费总金额:" + sumMoney);
System.out.print("成功换购:百事可乐饮料一瓶。");
break;
case 2:
sumMoney = money + 3;
System.out.println("本次消费总金额:" + sumMoney);
System.out.print("成功换购:500ml可乐一瓶。");
break;
case 3:
sumMoney = money + 10;
System.out.println("本次消费总金额:" + sumMoney);
System.out.print("成功换购:5公斤面粉。");
break;
case 4:
sumMoney = money + 10;
System.out.println("本次消费总金额:" + sumMoney);
System.out.print("成功换购:1个苏波尔炒菜锅。");
break;
case 5:
sumMoney = money + 20;
System.out.println("本次消费总金额:" + sumMoney);
System.out.print("成功换购:欧莱雅爽肤水一瓶。");
break;
case 0:
System.out.println("不换购。");
break;
default:
break;
}
}else {
System.out.println("不参与优惠换购活动");
}
input.close();
}
}
2.输入赵本山的考试成绩,显示所获奖励。
成绩==100分,爸爸给他买辆车
成绩>=90分,妈妈给他买MP4
90分>成绩>=60分,妈妈给他买本参考书
成绩<60分,什么都不买
(分别用if-else和switch两种方式实现)
public class Practice02 {
public static void main(String[] args) {
//1.if-else实现
Scanner input = new Scanner(System.in);
System.out.print("请输入赵本山考试成绩:");
double score = input.nextDouble();
if (score == 100) {
System.out.println("爸爸给他买车");
} else if (score >= 90) {
System.out.println("妈妈给他买MP4");
} else if (score >= 60) {
System.out.println("妈妈给他买本参考书");
} else {
System.out.println("什么都不买");
}
input.close();
}
}
public class Practice02 {
public static void main(String[] args) {
//2.switch方式
Scanner input = new Scanner(System.in);
System.out.println("请输入赵本山考试成绩:");
double score = input.nextDouble();
switch((int)score/10) {
case 10:
System.out.println("爸爸给他买车");
break;
case 9:
System.out.println("妈妈给他买MP4");
break;
case 8:
case 7:
case 6:
System.out.println("妈妈给他买本参考书");
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
System.out.println("什么都不买");
break;
default:
System.out.println("超出0-100范围,输入有误");
break;
}
input.close();
}
}
3.使用while实现:输出摄氏温度与华氏温度的对照表,要求它从摄氏温度0度到250度,每隔20度为一项,对照表中的条目不超过10条。
转换关系:华氏温度 = 摄氏温度 * 9 / 5.0 + 32
提示:
1、循环操作:计算摄氏温度,并输出对照条目
2、循环条件:条目<=10 && 摄氏温度 <= 250
public class Practice03 {
public static void main(String[] args) {
System.out.println("温度\t华氏");
int ss = 0;
int hs;
int count = 1;
while (ss <= 250 && count <= 10) {
hs = (int) (ss * 9 / 5.0 + 32);
System.out.println(ss + "\t" + hs);
ss += 20;
count++;
}
}
}
4.计算100以内偶数之和。
编程实现:计算100以内(包括100)的偶数之和。
public class Practice04 {
public static void main(String[] args) {
int sum = 0;
for(int i=1;i<=100;i++){
if(i%2!=0){
continue;
}
sum += i;
}
System.out.println(sum);
}
}
5.小红今年12岁,她父亲比她大20岁,编一程序,计算出她父亲在几年后比她的年龄大1倍,那时他们两人的年龄各为多少?
public class Practice05 {
public static void main(String[] args) {
int hong = 12;
int baba = 32;
int i=1;
while(i<=100){
if((hong+i)*2==(baba+i)){
break;
}
i++;
}
System.out.println(i);
}
}
public class Practice06 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int i = 3; //循环初始化
while (i > 0) { //循环条件
System.out.print("请输入用户名:");
String userName = input.next();
System.out.print("请输入密码:");
String passWord = input.next();
if ("jim".equals(userName) && "123456".equals(passWord)) {
System.out.println("欢迎登陆MyShopping系统!");
break; //跳出循环
} else {
i--; //循环迭代
System.out.println("输入错误!您还有" + i + "次机会");
// System.out.println(i);
}
}
if (i == 0) {
System.out.println("对不起,您3次均输入错误!");
}
input.close();
}
}
7.一辆以固定速度行驶的汽车,清晨司机看到里程表上从左到右的读数和从右到左的计数是一样的,这个数是95859,2小时后,里程表上又出现一个新的对称数,问此车的时速是多少?这个新的对称数是什么?设里程表为5位数字.
public class Practice07 {
public static void main(String[] args) {
int speed = 1;
int lc = 0;
while(lc<=100000&&speed<=200){
lc = 95859 + 2*speed;
if(lc/10000==lc%10 && lc/1000%10==lc/10%10){
System.out.println("速度为:"+speed+"\t里程为:"+lc);
}
speed++;
}
}
}
8.求n!,n由键盘输入, 范围要求3-15之间,如果用户输入的数不满足条件,则提示重新输入,直到输入了正确的n, 计算阶乘并输出结果。
import java.util.Scanner;
public class Practice08 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int num;
while(true){
System.out.print("请输入3-10之间的数字:");
num = input.nextInt();
if(num>=3&&num<=10){
break;
}else{
System.out.println("输入错误,再来!!");
}
}
int sum = 1;
for(int i=1;i<=num;i++){
sum *= i;
}
System.out.println(sum);
}
}
9.从键盘输入a,b,c三个值,检查能否构成三角形.如能构成三角形,则计算三角形的面积.
import java.util.Scanner;
public class Practice09 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int a,b,c;
System.out.print("请输入第一条边的长度:");
a = input.nextInt();
System.out.print("请输入第二条边的长度:");
b = input.nextInt();
System.out.print("请输入第三条边的长度:");
c = input.nextInt();
if(a+b>c&&a+c>b&&b+c>a){
System.out.println("可以构成三角形");
}else{
System.out.println("不能构成三角形");
}
}
}
10.编程,任意输入15个数,找出最小数.
import java.util.Scanner;
public class Practice10 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入第1个数字:");
int min = input.nextInt();
for(int i=2;i<=15;i++){
System.out.print("请输入第"+i+"个数字:");
int num = input.nextInt();
if(min>num){
min = num;
}
}
System.out.println("最小值:"+min);
}
}
11.编程,任意输入n个数, 当输入-1时结束,找出其中最大数和最小数.
import java.util.Scanner;
public class Practice11 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入数字:");
int num = input.nextInt();
if(num!=-1){
int max,min;
max = num;
min = num;
while(true){
System.out.print("请输入数字:");
num = input.nextInt();
if(num==-1){
break;
}
if(max<num){
max = num;
}
if(min>num){
min = num;
}
}
System.out.println("最大值:"+max+"\t最小值:"+min);
}
}
}
12.小猴子摘来一些桃.它吃掉了一半,觉得不过瘾,又吃掉了一只.第二天,它也这样,先吃了剩下的一半,再多吃一只.第三天也如此.第十天小猴子一看,就剩一个桃子了.问小猴子那天共摘来多少只桃?
public class Practice12 {
public static void main(String[] args) {
int s = 1;
for(int i=9;i>0;i--){
s = (s+1)*2;
}
System.out.println(s);
}
}
13.找出1~10000之间的全部同构数.
同构数指一个数出现在它的平方的右端.
如:5的平方是25,5是25右端的数,5和25就是一对同构数.
public class Practice13 {
public static void main(String[] args) {
int i=0,j;
int w=10;
while(i<=10000){
i++;
if(i==w){
w*=10;
}
j=i*i;
if ((j%w)==i){
System.out.println(i+"和"+j+"为同构数");
}
}
}
}
14.如果一个数等于它的每一位数的立方和,则称为水仙花数,如153=1+125+27
求100-999之间的全部水仙花数.
public class Practice14 {
public static void main(String[] args) {
for(int i=100;i<=999;i++){
int gw = i%10;
int sw = i/10%10;
int bw = i/100;
if(i == gw*gw*gw+sw*sw*sw+bw*bw*bw){
System.out.println(i);
}
}
}
}
15.输出3~100之间的全部素数.
public class Practice15 {
public static void main(String[] args) {
for (int i = 3; i <= 100; i++) {
// 从2开始到i-1,对i进行整除
int j = 2;
for (; j < i; j++) {
if (i % j == 0) {
break;
}
}
if (i == j) {
System.out.print(i + " ");
}
}
}
}
16.计算1+3!+5!+…+(2n-1)! 前10 项和.
public class Practice16 {
public static void main(String[] args) {
long sum = 0;
for(int i=1;i<=10;i++){
long num =1;
for(int j=1;j<=2*i-1;j++){
num *=j;
}
sum += num;
}
System.out.println(sum);
}
}
17.编程计算 S=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)
import java.util.Scanner;
public class Practice17 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入n:");
int n = input.nextInt();
int he=0;
int sum=0;
for (int i=1;i<=n;i++){
he+=i;
sum+=he;
}
System.out.println("结果为:"+sum);
}
}
18.用子程序求级数的前n项和,级数为 s=1+(1+3)+(1+3+5)+…+(1+3+5+…+2n-1)
import java.util.Scanner;
public class Practice18 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入n:");
int n = input.nextInt();
int he = 0;
int sum = 0;
for(int i=1;i<=2*n-1;i++){
if(i%2==1){
he+=i;
}else{
continue;
}
sum+=he;
}
System.out.println("结果为:"+sum);
}
}
19.雨淋湿了小学生算术本上一道题,8个数字只能看清3个(第一个数字虽然模糊不清楚,但可看出不是1):
确定方框中应是什么数.
public class Practice19 {
public static void main(String[] args) {
int x,y,z,i,j;
for(x=2;x<=9;x++){
for(y=1;y<=9;y++){
for(z=1;z<=9;z++){
for(i=0;i<=9;i++){
for(j=0;j<=9;j++){
int first=(x*((10*y+3)+z))*(x*((10*y+3)+z));
int second=8000+100*i+10*j+9;
if(first==second){
System.out.println("x="+x+"\ty="+y+"\tz="+z+"\ti="+i+"\tj="+j);
}
}
}
}
}
}
}
}
20.求100之内的所有完备数.完备数是其各因子之和等于其本身的正整数.
public class Practice20 {
public static void main(String[] args) {
for(int i=1;i<=100;i++){
int sum=0;
for (int j=1;j<i;j++){
if(i%j==0){
sum +=j;
}
}
if(sum==i){
System.out.println(i+"为完备数");
}
}
}
}