打印折纸数
package com.basic.struct;
/**
* @author soso
* @PackageName:com.basic.struct
* @ClassName:fordemo04
* @Description:打印折纸数
* @date 2024/9/410:11
*/
public class fordemo04 {
public static void main(String[] args) {
/* 需求:求折叠次数,每折叠一次纸张的厚度是原先的两倍 */
//1.定义一个变量来记录山峰高度
double height = 8844430;
//2.定义一个变量来记录纸张初始厚度
double paper = 0.1;
//3.定义一个变量记录此时折叠次数
int count = 0;
//4.循环折叠纸张,只要纸张的厚度小于山峰的高度,循环继续
while(paper < height){
paper = paper*2;
count++;
}
System.out.println(count);
}
}
结果是27次。
回文数
package com.basic.struct;
import java.util.Scanner;
/**
* @author soso
* @PackageName:com.basic.struct
* @ClassName:fordemo05
* @Description:判断数字是否是回文数
* @date 2024/9/410:20
*/
public class fordemo05 {
public static void main(String[] args) {
/*把数字倒过来,再和原来的数字比较*/
//1.读入数字
Scanner sc = new Scanner(System.in);
System.out.println("Enter number: ");
int n = sc.nextInt();
//2.设置一个临时变量,保存初始数字,设置一个变量记录改变顺序的值
int temp = n;
int num = 0;
//3.利用循环把右边的数字拼到最左边
while (n !=0){
//从右往左获取每一位数字
int ge = n % 10;
//修改一下n记录的值
n = n / 10;
//把当前获得的值拼到最左边
num = num * 10 + ge;
}
//4.比较两个数并打印结果
if (num == temp){
System.out.println("Yes");
}else{
System.out.println("No");
}
}
}
结果图:
求商和余数
package com.basic.struct;
import java.util.Scanner;
/**
* @author soso
* @PackageName:com.basic.struct
* @ClassName:fordemo06
* @Description:利用循环得到商和余数
* @date 2024/9/410:47
*/
public class fordemo06 {
public static void main(String[] args) {
/* 利用循环得到商和余数,不断用被除数减去除数 */
//1.读入被除数与除数,定义记录循环数的变量
Scanner sc = new Scanner(System.in);
System.out.println("Enter the dividend: ");
int dividend = sc.nextInt();
System.out.println("Enter divisor: ");
int divisor = sc.nextInt();
int count = 0;
//2.循环用被除数不断减除数,同时记录循环数
while(dividend > divisor){
dividend -= divisor;
count++;
}
//3.打印余数和商
System.out.println("商为:"+count);
System.out.println("余数为:"+dividend);
}
}
结果图:
逢7过
package com.basic.struct;
import java.util.Scanner;
/**
* @author soso
* @PackageName:com.basic.struct
* @ClassName:fordemo07
* @Description:逢7过
* @date 2024/9/411:17
*/
public class fordemo07 {
public static void main(String[] args) {
/*从任意一个数字开始,依次递增,当数字是7或7的倍数的时候打印“过”*/
//1.读取开始与结束的数字
Scanner sc = new Scanner(System.in);
System.out.println("Enter the begin number: ");
int beginNum = sc.nextInt();
System.out.println("Enter the end number(less than 100): ");
int endNum = sc.nextInt();
//2.循环判断并打印
for (int i = beginNum; i <= endNum; i++) {
if (i % 10 == 7 || i/10%10 == 7 || i%7 == 0) {
System.out.print("过" + " ");
}else{
System.out.print(i + " ");
}
if ((i-beginNum) % 6 == 0 & (i-beginNum) != 0 ){
System.out.print("\n");
}
}
}
}
结果图:
求平方根
package com.basic.struct;
import java.util.Scanner;
/**
* @author soso
* @PackageName:com.basic.struct
* @ClassName:fordemo08
* @Description:利用循环求平方根,还可以用二分法,先记着
* @date 2024/9/412:42
*/
public class fordemo08 {
public static void main(String[] args) {
/* 利用循环求一个数的平方根,保留整数,小数舍去;从1开始平方再与输入的数比较,当平方数大于给的数时,停止循环 */
//1.读入数字
Scanner sc = new Scanner(System.in);
System.out.println("Enter number: ");
int n = sc.nextInt();
int sqrt = 0;
int square = 1;
//2.利用循环比较平方数
while(square < n) {
//判断是大于还是等于
sqrt++;
square = sqrt*sqrt;
if(n == square) {
System.out.println(n+"的平方根为:"+sqrt);
} else if (n<square) {
System.out.println(n+"的平方根为"+(sqrt-1));
}
}
sc.close();
}
}
结果图:
求质数
package com.basic.struct;
import java.util.Scanner;
/**
* @author soso
* @PackageName:com.basic.struct
* @ClassName:fordemo09
* @Description:利用循环求质数
* @date 2024/9/412:57
*/
public class fordemo09 {
public static void main(String[] args) {
/*把范围缩小到输入数的平方根,一定有一个因数是小于平方根的*/
//1.读入数字,同时定义一个旗帜变量
Scanner sc = new Scanner(System.in);
System.out.println("Enter number: ");
int n = sc.nextInt();
boolean flag = false;
//2.进入循环,循环范围框定在平方根内,Math.sqrt求平方根
for(int i = 2; i <= Math.sqrt(n); i++) {
//2.1判断是否能够整除
if(n % i == 0) {
flag=true;
break;
}
}
//3.根据旗帜变量输出
if(flag) {
System.out.println(n+"不是质数。");
}else{
System.out.println(n+"是质数。");
}
}
}
结果图:
猜数字
java内有一个类叫Random,可以用于生成随机数,用法与Scanner一样
package com.basic.struct;
import java.util.Random;
import java.util.Scanner;
/**
* @author soso
* @PackageName:com.basic.struct
* @ClassName:fordemo10
* @Description:系统随机生成随机数,再进行猜测判
* @date 2024/9/413:45
*/
public class fordemo10 {
public static void main(String[] args) {
/* 系统随机生成随机数,再进行猜测 */
//1.系统随机生成随机数
Random rand = new Random();
//包头不包尾,包左不包右
int number = rand.nextInt(100);//0~99
//定义旗帜变量判断是否猜对
boolean flag = true;
Scanner sc = new Scanner(System.in);
//3.猜测随机数直至猜对
while (flag) {
//3.1读入猜测的数字
System.out.print("Enter number: ");
int n = sc.nextInt();
//3.2判断
if (n < number) {
System.out.println("Your number is smaller than the number.");
}else if(n > number){
System.out.println("Your number is greater than the number.");
}else{
flag = false;
System.out.println("You are right now.");
}
}
sc.close();
}
}
结果图: