java初级练习

这篇文章包含了多个编程挑战,涉及回文数的查找、完数计算、无重复数字的三位数排列、数字逆序输出、数列求和、奇偶数求和、自由落体模拟、蜗牛爬井问题、避免7的数字求和以及数字排序。这些问题主要考察了基本的算法设计和逻辑思维能力。

public static void test1() {

// 1、【回文数】

//打印5位数中的所有回文数,每行打印10个数。最后统计一下一共有多少个5位回文数。

//注:回文数即正反读都是一个数,5位数的话,只要个位与万位相同,十位与千位相同就是一个回文数。

int[] palindromicNumber = new int[10];

int index = 0;

for (int i = 10000; i < 100000; i++) {

String st = "";

st = st + i;

String[] str = st.split("");

boolean bo = true;

for (int j = 0; j < str.length; j++) {

if (!(str[j].equals(str[str.length - j - 1]))) {

bo = false;

break;

}

}

if (bo) {

palindromicNumber[index] = i;

index++;

}

if (index > 9) {

index = 0;

System.out.println(Arrays.toString(palindromicNumber));

}

}

}

public static void test2() {

// 2、【求完数】

//一个数如果恰好等于它的所有真因子(即除了自身外的所有因数)之和,这个数就称为"完数"。

//请编程求出1000 以内的所有完数。

for (int i = 1; i < 1000; i++) {

int Num = 0;

for (int j = 1; j < i; j++) {

if (i % j == 0) {

Num += j;

}

}

if (i == Num) {

System.out.println(i + " ");

}

}

}

public static void test3() {

// 3、【求不重复数字】

//有1、2、3、4一共四个数字,能组成多少个不相等且无重复数字的三位数?都是多少?

//注:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的就可以了。

int num;

for (int i = 0; i < 4; i++) {//百

for (int j = 0; j < 4; j++) {//十

for (int k = 0; k < 4; k++) {//个

if (i != j && i != k && j != k) {//保证不重复

num = i*100+j*10+k;

System.out.print(num+" ");

}

}

}

}

}

public static void test4() {

//4、【根据输入求输出-求位数、逆序输出】

// 键盘录入一个正整数,请求:

// 1.它是几位数?2.逆序打印出各位数字。

System.out.println("请输入一个正整数");

Scanner scan = new Scanner(System.in);

int a = scan.nextInt();

String st = String.valueOf(a);

String[] str = st.split("");

System.out.printf("它是个%s位数\n", str.length);

for (int length = str.length-1; length >= 0; length--) {

System.out.print(str[length]);

}

}

public static void test5() {

//5、【数列的前n项和】有一分数序列:

// 2/1,,5/3,8/5,13/8,21/13. 求出这个数列的前20项之和。

// 注:提前告诉你答案是32.66026079864164

double number = 0;

double molecule = 1;

double denominator = 2;

double a;

for (int i = 1; i < 21; i++) {

number += denominator / molecule;

a = molecule;

molecule = denominator;

denominator += a;

}

System.out.println(number);

}

public static void test6() {

// 6、【求奇数/偶数和】

//求100以内的所有奇数/偶数的和。

int oddNumber = 0;

int even = 0;

for (int i = 1; i < 101; i += 2) {

oddNumber += i;

even += i + 1;

}

System.out.println("奇数和为:" + oddNumber);

System.out.println("偶数和为:" + even);

}

public static void test7() {

// 7、【自由落体】

//假如一个小球从100米高度自由落下,每次落地后就反跳回原高度的一半。那么求它在第10次落地时,共经过多少米?第10次反弹多高?

double high = 100;

for (int i = 0; i < 10; i++) {

high /= 2;

}

System.out.println(high);

}

public static void test8() {

// 8、【循环练习-蜗牛爬井】

//井里有一只蜗牛,他白天往上爬5米,晚上掉3.5 米,井深56.7米,计算蜗牛需要多少天才能从井底到爬出来

int day = 0;

for (double i = 5; i < 56.7; i += 5) {

day++;

i -= 3.5;

}

System.out.println(day);

}

public static void test9() {

// 9、【求和-去除7倍数和包含7】

//打印出1-100之 间所有不是7的倍数和不包含7的数字, 并求和。

int num = 0;

for (int i = 1; i < 101; i++) {

if (i % 7 != 0 && i / 10 != 7 && i % 10 != 7) {

System.out.println(i);

num += i;

}

}

System.out.println(num);

}

public static void test10() {

// 10、【排序】

//随机给十个数字,对它们进行排序。(可以给一个有10个整数元素的数组,然后对数组排序

int[] arr = new int[10];

for (int i = 0; i < arr.length; i++) {

Random r = new Random();

arr[i] = r.nextInt();

}

Arrays.sort(arr);

System.out.println(Arrays.toString(arr));

}

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值