元旦代码练习

1、【回文数】

打印5位数中的所有回文数,每行打印10个数。最后统计一下一共有多少个5位回文数。注:回文数即正反读都是一个数,5位数的话,只要个位与万位相同,十位与千位相同就是一个回文数。

public class test_yuandan {

public static void main(String[] args) {

int[] palindromicNumber = new int[10];

int num = 0;

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++;

num++;

}

if (index > 9) {

index = 0;

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

}

}

System.out.println(num);

}

2、【求完数】

一个数如果恰好等于它的所有真因子(即除了自身外的所有因数)之和,这个数就称为"完数"。请编程求出1000 以内的所有完数。

public static void main(String[] args) {

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

int a = 0;

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

if (i % j == 0) {

a += j;

}

}

if (i == a) {

System.out.println(i);

}

}

}

3、【求不重复数字】

有1、2、3、4一共四个数字,能组成多少个不相等且无重复数字的三位数?都是多少?注:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的就可以了。

public static void main(String[] args) {

int[] a = {1, 2, 3, 4};

int x = 0;

int index = 0;

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

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

for (int k = 0; k < a.length; k++) {

if (i != j && i != k && j != k) {

x = a[i] * 100 + a[j] * 10 + a[k];

System.out.println(x);

index++;

}

}

}

}

System.out.println(index);

}

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

键盘录入一个正整数,请求:1.它是几位数?2.逆序打印出各位数字。

public static void main(String[] args) {

int[] a = {1, 2, 3, 4};

int x = 0;

int index = 0;

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

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

for (int k = 0; k < a.length; k++) {

if (i != j && i != k && j != k) {

x = a[i] * 100 + a[j] * 10 + a[k];

System.out.println(x);

index++;

}

}

}

}

System.out.println(index);

}

5、【数列的前n项和】

有一分数序列:2/1,,5/3,8/5,13/8,21/13. 求出这个数列的前20项之和。注:提前告诉你答案是32.66026079864164

public static void main(String[] args) {

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);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值