修正版练习题-1

package Day.lianxi;

import java.util.Arrays;

import java.util.Scanner;

public class Tast1 {

public static void main(String[] args) {

shi();

}

//,1、【回文数】

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

public static void yi(){

int index=0;

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

int yi2=i%10;//求 个位数

int yi3=i/10/10/10/10%10;//求 万位数

int yi4=i/10%10;//求 十位数

int yi5=i/10/10/10%10;//求 千位数

if (yi2==yi3&&yi4==yi5){

System.out.println(i);

index++;

if (index%10==0);{

System.out.println();

}

}

}

System.out.println(index);

}

//2、【求完数】

//一个数如果恰好等于它的所有真因子

// (即除了自身外的所有因数)之和,这个数就称为"完数"。

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

//查的网上但是没看懂

public static void er(){

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

int s=0;

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

if (i%j==0){

s+=j;

}

}

if (s==i){

System.out.println(s);

}

}

}

public static void er1(){

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

int sum=0; //保存 所有因子的和

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

if (i%j==0){ //余数为0 说明 j就是i 的因子

sum+=j;

}

}

//根据 sum==1 判断是否是完数

if (i==sum){

System.out.println(i);

}

}

}

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

//有1、2、3、4一共四个数字,

// 能组成多少个不相等且无重复数字的三位数?都是多少?

//注:可填在百位、十位、个位的数字都是1、2、3、4。

// 组成所有的排列后再去掉不满足条件的就可以了。

public static void san(){

int sum=0;

for (int i = 1; i < 5; i++) { //百位数

for (int j = 1; j < 5; j++) {//十位数

for (int k = 1; k < 5; k++) {//个位数

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

sum++;

System.out.println(i*100+j*10+k);//保证不重复

}

}

}

}

System.out.println("共有"+sum+"个三位数");

}

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

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

public static void si(){

Scanner scan=new Scanner(System.in);

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

int si1=scan.nextInt();

int si2=0;

while (si1!=0){

si2=si2*10+si1%10;

si1/=10;

}

System.out.println(si2);

}

public static void si1(){

Scanner scan=new Scanner(System.in);

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

int sun=scan.nextInt();

String si=sun+"";

StringBuffer stringBuffer=new StringBuffer(si);

String string=stringBuffer.reverse().toString();

System.out.println(string);

}

//5、【数列的前n项和】

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

//看不懂 放弃

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

public static void wu(){

double[] arr1 = new double[20]; //分子

double[] arr2 = new double[20];//分母

arr1[0] =2;

arr1[1] =3;

for (int i = 2; i < arr1.length; i++) {

arr1[i] = arr1[i-1] +arr1[i-2];

}

for (int i = 2; i < arr2.length; i++) {

arr2[i] =arr2[i-1]+arr2[i-2];

}

double sum=0;

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

sum+=arr1[i]/arr2[i];

}

System.out.println(sum);

}

//__________________________________________________

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

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

public static void liu(){

int sun=0;

int sun1=0;

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

if (i%2!=0){

sun+=i;

}

}

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

if (i%2==0){

sun1+=i;

}

}

System.out.println(sun+sun1);

}

//7、【自由落体】

//假如一个小球从100米高度自由落下,每次落地后就反跳回原高度的一半。

// 那么求它在第10次落地时,共经过多少米?第10次反弹多高?

public static void qi(){

double rice=100; //初始下落高度

double rice1=0; //小球经过路程

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

rice1=rice1+rice+rice/2; // 下落距离+ 反弹高度

rice=rice/2; // 第i+1次自由落体的高度(也是第1次自由落体的反弹高度)

}

rice1-=rice; // 将最后一次落地 反弹的高度 去掉

System.out.println("第十次落地,共经过"+rice1);

System.out.println("第十次反弹"+rice);

}

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

//井里有一只蜗牛,他白天往上爬5米,

// 晚上掉3.5 米,井深56.7米,计算蜗牛需要多少天才能从井底到爬出来。

public static void ba(){

int day=1;// 天数

double h=0;// 蜗牛往上趴的高度

while (h<=56.7){

h+=5;

if (h <=56.7){// 说明 爬了5米 依然没爬出来

h-=3.5;

}else {

break;

}

day++; //循环天数

}

System.out.println("蜗牛需要:"+day+"天才能从井底爬出来");

}

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

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

public static void jiu(){

int jiujiu=0;

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

int jiu1=i%10;

int jiu2=i/10%10;

int jiu3=i%7;

if (jiu3!=0&&jiu1 != 7 && jiu2 != 7){

jiujiu+=i;

System.out.println(i);

}

}

System.out.println(jiujiu);

}

//10、【排序】

//随机给十个数字,对它们进行排序。

// (可以给一个有10个整数元素的数组,然后对数组排序)

public static void shi(){

int [] sun=new int[10];

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

sun[i] = (int) (Math.random() * 100);

}

System.out.printf(Arrays.toString(sun));

// Arrays.sort(sun);

// System.out.println(Arrays.toString(sun));

//使用冒泡排序: 每两个元素的对比 如果 前者>后者 则交换位置

// 每一轮排序后 都会将最大值放到末尾

for (int i = 1; i < sun.length;i++) {//轮数

for (int j = 0; j < sun.length-1-i; j++) {

if (sun[j]>sun[j+1]){//前者>后者 交换位置

int temp=sun[j+1];

sun[j+1]=sun[j];

sun[j]=temp;

}

}

System.out.println("第"+(i+1)+"论排序后的结果"+Arrays.toString(sun));

}

System.out.println("最终排序结果"+Arrays.toString(sun));

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值