/*1.将一个整数数位翻转
如: 整数 56123
返回结果为整数: 32165*/
import java.util.Scanner;
public class Day02E2T1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数");
long num = sc.nextLong();
long sum = 0;
while (num != 0) {
sum = sum * 10 + num % 10;
num = num / 10;
}
System.out.println("这个数的翻转数是" + sum);
}
}
/2:一个5位数,判断它是不是回文数,例如12321是回文数/
import java.util.Scanner;
public class Day02E2T2 {
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个整数");
long num=sc.nextLong();
long temp=num;
long sum=0;
while(num!=0)
{
sum=sum*10+num%10;
num=num/10;
}
if(temp==sum)
System.out.println("这个数是回文数");
else
System.out.println("这个数不是回文数");
}
}
/*
* 2.使用一个函数求两个数的和,差,积,商
*/
package com.qianfeng.works;
import java.util.Scanner;
public class Day05E1T2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数:");
double m = sc.nextDouble();
System.out.println("请再输入一个数:");
double n = sc.nextDouble();
System.out.println("您要进行什么计算?计算和请输入1,计算差请输入2,计算积请输入3,计算商请输入4");
int i =sc.nextInt();
double t=0;
switch (i){
case 1:
t=fun(m,n);
break;
case 2:
t=fun(m,n,3);
break;
case 3:
t=fun(m,n,3,4);
break;
case 4:
t=fun(m,n,3,4,5);
break;
}
System.out.println("计算结果为:"+t);
}
public static double fun(double num1,double num2){
double z=0;
z=num1+num2;
return z;
}
public static double fun(double num1,double num2,double num3){
double z=0;
z=num1-num2;
return z;
}
public static double fun(double num1,double num2,double num3,double num4){
double z=1;
z=num1*num2;
return z;
}
public static double fun(double num1,double num2,double num3,double num4,double num5){
double z=1;
z=num1/num2;
return z;
}
}
/*
4.求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
*/
package com.qianfeng.zy;
import java.util.Scanner;
public class Day02ExtraWorksT4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入相加的数的个数:");
int n = sc.nextInt();
System.out.println("请输入一个数:");
int t = sc.nextInt();
int p = t;
int sum = 0;
for (int i = 1; i <= n; i++) {
// p=t%10;
sum += t;
t = t * 10 + p;
}
System.out.println(sum);
}
}
/*
5.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和
*/
package com.qianfeng.zy;
import java.util.Scanner;
public class Day02ExtraWorksT5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要相加多少项");
int n = sc.nextInt();
int fz = 2, fm = 1, sum = 0, m;
for (int i = 1; i < n; i++) {
sum += fz / fm;
m = fm;
fm = fz;
fz = fz + m;
}
System.out.println(sum);
}
}
/*
23. 已知 abc+cba=1333, 其中的a,b,c均为一位数,编写一个程序,求出a,b,c分别代表什么数字
*/
package com.qianfeng.zy;
public class Day04WorksT23 {
public static void main(String[] args) {
int a,b,c,m;
for (int i = 100; i <= 999; i++) {
a=i%10;
b=(i/10)%10;
c=i/100;
m=a*100+b*10+c;
if (i+m==1333) {
System.out.println(i);
System.out.println("a="+a+" b="+b+" c="+c);
}
}
}
}
/*
* 1,将给定数组进行反转。{32,65,12,89,41} {41,89,12,65,32}
*/
package com.qianfeng.zy;
public class Day06WorksT1 {
public static void main(String[] args) {
int[] arr1 = new int[]{32,65,12,89,41};
System.out.println("原数组为:");
outputArray(arr1);
reverse(arr1);
System.out.println("反转后的数组为:");
outputArray(arr1);
}
static void reverse(int arr[]){
for (int i = 0; i < arr.length/2; i++) {//注意终止条件应为i < arr.length/2
arr[i]=arr[i]^arr[arr.length-1-i];
arr[arr.length-1-i]=arr[i]^arr[arr.length-1-i];
arr[i]=arr[i]^arr[arr.length-1-i];
}
/*int t;
for(int i=0,j=arr.length-1;i<j;i++,j--)
{
t=arr[i];
arr[i]=arr[j];
arr[j]=t;
}*/
}
static void outputArray(int arr[]){
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if(i==arr.length-1){
System.out.print(arr[i]);
System.out.println("]");
}else{
System.out.print(arr[i]+",");
}
}
}
}
/*
* 1.定义一个数组,数组成员10个,找出数组中最大数连同下标一起输出
* 2.B哥去参加青年歌手大奖赛,有10个评委打分,(去掉一个最高一个最低)求平均分?
* 3.给定一个整型数组,数组成员10个,求该数组中第二大的数的下标
*/
package com.qianfeng.zy;
import java.util.Random;
public class Day05WorksT1_T3 {
public static void main(String[] args) {
//1.输出数组最大数及其下标
int[] arr1 = new int[10];
inputArray(arr1);
System.out.println("自动生成的数组为:");
outputArray(arr1);
maxAndSub_i(arr1);
System.out.println();
//2.歌手打分
int[] arr2 = new int[10];
inputArray(arr2);
System.out.println("自动生成的数组为:");
outputArray(arr2);
System.out.println("歌手平均分为:"+avgSingScore(arr2));
System.out.println();
//3.求该数组中第二大的数的下标
int[] arr3 = new int[10];
inputArray(arr3);
System.out.println("自动生成的数组为:");
outputArray(arr3);
secondMax(arr3);
System.out.println();
}
//随机生成数组
public static void inputArray(int arr[]){
for (int i = 0; i < arr.length; i++) {
arr[i] = new Random().nextInt(100);
}
}
//自定义打印数组
public static void outputArray(int arr[]){
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if(i==arr.length-1){
System.out.print(arr[i]);
}else{
System.out.print(arr[i]+",");
}
}
System.out.println("]");
}
//1.输出数组最大数及其下标
public static void maxAndSub_i(int arr[]) {
int max=arr[0];
for (int i : arr) {
if(i>max){
max=i;
}
}
for (int i = 0; i < arr.length; i++) {
if(arr[i]==max){
System.out.println("最大数的下标i="+i);
System.out.println("最大数max="+max);
}
}
}
//2.唱歌打分
public static double avgSingScore(int arr[]){
int max=arr[0];
int min=arr[0];
int sum=0;
double avg=0;
for (int i = 0; i < arr.length; i++) {
if(arr[i]>max){
max=arr[i];
}
if(arr[i]<min){
min=arr[i];
}
sum+=arr[i];
}
avg=(sum-max-min)/(arr.length-2);
return avg;
}
//3.求该数组中第二大的数的下标
public static void secondMax(int arr[]){
int max;
int secondmax;
if(arr[1]>arr[0]){
max=arr[1];
secondmax=arr[0];
}else{
max=arr[0];
secondmax=arr[1];
}
for (int i = 0; i < arr.length; i++) {
if(arr[i]>max){
secondmax=max;
max=arr[i];
}else if(arr[i]>secondmax){
secondmax=arr[i];
}
}
for (int i = 0; i < arr.length; i++) {
if(arr[i]==secondmax){
System.out.println("第二大的数的下标i="+i);
System.out.println("最二大数secondmax="+secondmax);
}
}
}
}