1、 编程实现如下功能:
某人有100,000元,每经过一次路口,需要交费,规则如下
1)当现金 > 50000时,每次交5%
2)当现金 <= 50000时,每次交1000
编程计算该人可以经过多少次路口,要求:使用while+break方式完成。
public class homework01 {
public static void main(String[] args) {
double totalMoney = 100000;//一共剩余的总钱数
int count = 0;//累计过路口的次数
while(true){
if(totalMoney > 50000){
totalMoney *= 0.95;
count++;
} else if(totalMoney >= 1000){
totalMoney -= 1000;
count++;
}else {
// System.out.println("钱不够");
break;
}
}
System.out.println("100000 可以过 " + count + " 路口..");
}
}
2、判断一个整数是否时水仙花数,所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身。 例如:153 = 1*1*1 + 3*3*3 + 5*5*5
public class homework02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(true){//无限循环,直到输入的数为三位整数 进入 if判断 然后跳出循环
System.out.println("请输入一个三位数的整数:");
int num = scanner.nextInt();
if(num >= 100){
int numGe = num % 10;//三位数的个位数
int numShi = num % 100 / 10;//三位数的十位数
int numBai = num / 100;//三位数的百位数
int totalNum = numGe*numGe*numGe + numShi*numShi*numShi + numBai*numBai*numBai;
if(num == totalNum){
System.out.println("该数 " + num + "为水仙花数");
break;
}else{
System.out.println("该数 " + num + "不为水仙花数");
break;
}
}else{
System.out.println("输入错误,请输入三位整数");
}
}
}
}
3、输出1-100之间的不能被5整除的数,每5个一行
public class homework03 {
public static void main(String[] args) {
int count = 0;//一行有几个符合要求的数
for (int i = 1; i <= 100; i++) {
if (i % 5 != 0) {
System.out.print(i + " ");
count++;
}
if (count == 5) {//一行五个数字输出完成后,换行,并将count置0
System.out.println();
count = 0;
}
//也可以这么写
// if(count % 5 == 0){
// System.out.println();
// }
}
}
}
4、输出小写的 a-z 以及大写的 Z-A
public class homework04 {
public static void main(String[] args) {
//输出小写的 a-z
for(char i = 'a';i <= 'z';i++){
System.out.print(i + " ");
}
System.out.println();
System.out.println("====================================================");
//输出的大写的 Z-A
for(char j = 'Z';j >= 'A';j--){
System.out.print(j + " ");
}
}
}
5、求出1-1/2 + 1/3 - 1/4 .... 1/100的和
public class homework05 {
public static void main(String[] args) {
double sum = 0;
for(int i = 1;i <= 100;i++){
if(i % 2 != 0){//分母为奇数
sum += 1.0/i;
}else {//分母为偶数
sum -= 1.0/i;
}
}
System.out.println("sum = " + sum);
}
}
6、 求出1 + (1+2) + (1+2+3) + (1+2+3+4) + ... +(1+2+3+...+100)
public class homework06 {
public static void main(String[] args) {
int sum = 0;
for(int i = 1;i <= 100;i++){
for(int j = 0;j <= i;j++){
sum += j;
}
}
System.out.println(sum);
}
}
/*
我自己写的时候把for循环语句中的循环体写成了如下:
for(int i = 1;i <= 100;i++){
for(int j = 0;j < i;j++){
sum += (i+j);
}
}
这么写,输出过程为:
sum = (1+0) + (2+0 + 2+1) + (3+0 + 3+1 + 3+2) + ... 输出结果远远大于正确结果。
请引以为鉴,避免犯同样的错误。
*/