编程实现如下功能
1)某人有100000元,每经过一次路口,需要交费,规则如下:
当现金>50000时,每次交5%;
当现金<= 50000时,每次交1000
编程计算该人可以经过多少次路口,要求:使用while + break 方式完成。
public class one{
public static void mian(){
//思路分析
//定义一个变量 int count 计算经过人数
//定义一个变量 double money 初值 100000
/*根据要求,分析出三种情况
money > 50000
money >= 1000 && money <= 50000
money < 1000
*/
int count = 0;
double money = 100000;//初值
while(true){//无限循环
if(money > 50000){
money = money * (1 - 0.05);
count++;
}else if(money >= 1000 && money <= 50000){
money -= 1000;
count++;
}else if(money < 1000)//钱不够
break;
}
//退出while循环,输出count
System.out.println("100000元经过" +count +"次路口。");
}
}
2)实现判断一个整数,属于那个范围:大于0;小于0;等于0;
public class two{
public static void mian(){
//思路分析
//使用scanner对象输入一个整型
//定义一个整数,使用if - else 判断
Scanner myscanner = new Scanner(System.in);
int num = myscanner.nextInt();
if(num > 0){
System.out.println(num + "大于0");
}else if(num == 0){
System.out.println(num + "等于0");
}else{
System.out.println(num + "小于0");
}
}
}
3)判断一个年份是否为闰年
public class three{
public static void mian(){
//思路分析
//使用Scanner对象输入int 型
//闰年:(1)年份能被 4 整除,但不能被 100 整除;(2)能被 400 整除
Scanner myscanner = new Scanner(System.in);
int year = myscanner.nextInt();
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
System.out.println(year + "是闰年");
}else{
System.out.println(year + "不是闰年");
}
}
}
4)判断一个整数是否是水仙花数,所谓水仙花数是指一个三位数,其各位上数字立方和等于其本身。例如:153 = 1 * 1 * 1 + 5 * 5 *5 + 3 * 3 * 3
public class four{
public static void mian(){
//思路分析
//使用Scanner对象 输入 int num
//取个位 num % 10
//取十位 num / 10 %10
//取百位 num / 100
Scanner myscanner = new Scanner(System.in);
int num = myscanner.nextInt();
int a = num % 10;
int b = num / 10 % 10;
int c = num / 100;
int sum =0;
sum = a * a * a + b * b * b + c * c * c;
if(sum == num)
System.out.println(num + "是水仙花数");
else
System.out.println(num + "不是水仙花数");
}
}
5)看看下面代码输出什么?
public class five{
public static void mian(){
int m = 0,n = 3;
if(m > 0){
if(n > 2)
System.out.println("OK1");
else
System.out.println("OK2");
}
//分析
//m>0假直接结束if循环,所以没有输出
}
}
6)输出1 - 100之间的不能被5整除,每五个一行。
public class six{
public static void mian(){
//思路分析
//for循环1 - 100
//过滤判断 不能被5整除的输出
//定义一个变量计数 int count ,五个一行(count%5==0)
int count = 0;
for(int i = 1;i <= 100;i++){
if(i % 5 != 0){
System.out.print(i + "\t");//使用print不换行
count++;
if(count % 5 == 0)
System.out.println();//换行
}
}
}
}
7)输出小写的a - z 以及大写的 Z - A.
public class seven{
public static void mian(){
//思路分析
//26个字母
//一个循环 从 a - z
//一个循环 从 A - Z
for(char i = 'a';i <= 'z';i++)
System.out.print(i + "\t");
System.out.println();
for(char i = 'Z';i >= 'A';i--)
System.out.print(i + "\t");
}
}
8)求出1 - 1/2 + 1/3 - 1/4…1/100的和
public class egiht{
public static void mian(){
//思路分析1
//循环1 - 100
//求和 int sum = 0;
//符号变换 sign = - sign
//定义一个变量 a 接收每一个变化的项
double sum = 0;
int sign = 1;//第一项保持为正
double a = 1;//首项
for(int i = 1;i <= 100;i++){
a = sign * (1.0/i);
sign = - sign;//变号
sum += a;
}
System.out.print("和为" + sum);
}
}
public class eight{
public static void mian(){
//思路分析2
/*一共100数, 分子为1,分母从1 - 100
当分母为奇数时,前面时+,是偶数时,前面是-
我们可以使用for+判断即可完成
把结果存放到double sum
隐藏陷阱,分子写成1.0才能得到精确值
*/
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.print(sum);
}
}
9)求 1 + (1 + 2)+(1 + 2 + 3)+(1 + 2 + 3 + 4)+…(1 + 2 +3 +…+100)的和
public class nine{
public static void mian(){
//思路分析1
//for循环 1 - 100;
//定义一个变量 int num 每项的和 初值为0 num = num + i
//定义一个变量 int sum 求总和 初值为0 sum = sum + num
int num = 0;
int sum = 0;
for(int i = 1;i <= 100;i++){
//从1到当前值的和
num += i;
//求总和
sum += num;
}
System.out.print(sum);
}
}
public class nine{
public static void mian(){
//思路分析2
/*一共100相加
每一项数字逐渐增加
双层循环
i可以表示第几项,同时也是当前项的最后一个数
sum记录累加和。
*/
double sum = 0;
for(int i = 1;i <= 100;i++){
for(int j = 1;j <= i;j++){//循环1-i
sum += j;
}
}
System.out.print(sum);
}
}