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