import java.util.Arrays;
import java.util.Scanner;
public class HomeWork1230 {
// 1、【回文数】
// 打印5位数中的所有回文数,每行打印10个数。最后统计一下一共有多少个5位回文数。
// 注:回文数即正反读都是一个数,5位数的话,只要个位与万位相同,十位与千位相同就是一个回文数。
//
public static void hws() {
int ct = 0;
for (int i = 10000; i < 100000; i++) {
int a1 = i / 10000;
int a2 = i / 10 % 10;
int a4 = i / 1000 % 10;
int a5 = i % 10;
if (a2 == a4 && a1 == a5) {
System.out.println("回文数是:" + i);
ct++;
if (ct%10==0){
System.out.println();
}
}
}
System.out.println("回文数总共有: " + ct);
}
// 2、【求完数】
// 一个数如果恰好等于它的所有真因子(即除了自身外的所有因数)之和,这个数就称为"完数"。
//
// 请编程求出1000 以内的所有完数。
//
public static void qws() {
for (int i = 1; i <= 1000; i++) {
int sum = 0;
for (int j = 1; j <= i / 2; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
System.out.println(i);
}
}
}
// 3、【求不重复数字】
// 有1、2、3、4一共四个数字,能组成多少个不相等且无重复数字的三位数?都是多少?
//
// 注:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的就可以了。
//
public static void bcfsz() {
int x = 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 || i == k || j == k) {
continue;
}
int num = i * 100 + j * 10 + k;
System.out.print(num + "\t");
x++;
}
}
System.out.println();
}
System.out.println("一共有" + x + "个互不相同且无重复数字的三位数");
}
// 4、【根据输入求输出-求位数、逆序输出】
// 键盘录入一个正整数,请求:1.它是几位数?2.逆序打印出各位数字。
//
public static void qsc() {
System.out.println("请输入一个正整数");
Scanner x = new Scanner(System.in);
int q = x.nextInt();
String a = Integer.toString(q);
char[] ch = a.toCharArray();
int y = ch.length;
System.out.println(q + "是一个" + y + "位数");
for (int i = ch.length -1; i >= 0; i--) {
System.out.print(ch[i] + ",");
}
}
// 5、【数列的前n项和】
// 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13. 求出这个数列的前20项之和。
//
// 注:提前告诉你答案是32.66026079864164
//
public static void slqh() {
int a, b, c;
double sl = 0.0;
int a1 = 0, a2 = 1, a3 = 1;
for (int i = 0; i < 20; i++) {
a = a2 + a3;//求得分母
b = a1 + a2;//求得分子
sl += (double) a / b;//计算和
a3 += a2;//加等a2的值
c = a2;//临时变量储存
a2 += a1;//加等a1的值
a1 = c;//a1的值转换成c
}
System.out.println(sl);
}
// 6、【求奇数/偶数和】
// 求100以内的所有奇数/偶数的和。
//
public static void qh() {
int x = 0, y = 0;
for (int i = 0; i < 101; i += 2) {
x += i;
}
for (int i = 1; i < 101; i += 2) {
y += i;
}
System.out.println("偶数的和为" + x);
System.out.println("奇数的和为" + y);
System.out.println("总和为" + (y + x));
}
// 7、【自由落体】
// 假如一个小球从100米高度自由落下,每次落地后就反跳回原高度的一半。那么求它在第10次落地时,共经过多少米?第10次反弹多高?
//
public static void zylt() {
double x = 100;//反弹
double y = 100;//经过
for (int i = 0; i < 10; i++) {
x = x / 2;
y = y + x+x;
System.out.printf("%s--%s\n",x,y);
}
y=y-x;
System.out.println("第十次反弹高度是:" + x );
System.out.println("总共经过" + y);
}
// 8、【循环练习-蜗牛爬井】
// 井里有一只蜗牛,他白天往上爬5米,晚上掉3.5 米,井深56.7米,计算蜗牛需要多少天才能从井底到爬出来。
//
public static void wnpj() {
float wn = 0f;
float sj = 56.7f;
int x = 0;
while (wn <= sj) {
x++;
wn = wn + 5;
if (wn >= sj) {
break;
} else {
wn = wn - 3.5f;
}
System.out.println(wn);
}
System.out.println(x);
}
// 9、【求和-去除7倍数和包含7】
// 打印出1-100之间所有不是7的倍数和不包含7的数字, 并求和。
//
public static void qcq() {
int x = 0;
for (int i = 1; i < 101; i++) {
int b = i / 10 % 10;
int c = i % 10;
if (i % 7 == 0 || b == 7 || c == 7) {
continue;
}
x += i;
System.out.println(i);
}
System.out.println("去除后的和是:"+x);
}
// 10、【排序】
// 随机给十个数字,对它们进行排序。(可以给一个有10个整数元素的数组,然后对数组排序)
public static void px(){
int[]x=new int[10];
for (int i = 0; i < x.length; i++) {
x[i]=(int) (Math.random()*100);
}
Arrays.sort(x);
System.out.println(Arrays.toString(x));
//使用冒泡排序:每两个元素做对比 如果前者》后者 则交换位置
//每一轮排序后 都会将最大值放到末尾
for (int i = 0; i < x.length; i++) {
for (int j = 0; j <x.length-1-i ; j++) {
if (x[j]>x[j+1]){
int temp=x[j+1];
x[j+1]=x[j];
x[j]=temp;
}
}
System.out.println("第"+(i+1)+"轮排序后的结果"+Arrays.toString(x));
}
System.out.println("最终排序的结果是:"+Arrays.toString(x));
}
public static void main(String[] args) {
// hws();
// qws();
// bcfsz();
// qsc();
// slqh();
// qh();
// zylt();
// wnpj();
// qcq();
px();
}
}
循环语句与分支语句的实际运用方式
于 2023-01-03 11:53:01 首次发布
该程序集包含多个Java实现的算法,如查找5位回文数、计算完数、生成无重复数字的三位数、求数列前n项和、奇偶数求和、自由落体问题、蜗牛爬井问题、排除7的倍数和含7数字的求和以及数组排序。这些例子展示了基础算法和数学问题的解决方法。
1186





