package day10;
import java.util.Scanner;
/*
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
输入两个正整数m和n(1<=m, n<=1000),输出m到n之间的所有满足各位数字的立方和等于它本身的数。
要求定义并调用函数is(number)判断number的各位数字之立方和是否等于它本身。
输出语句:System.out.print(i+" ");
例:括号内是说明
输入:
2 (repeat=2)
100 400 (m=100, n=400)
1 100 (m=1, n=100)
输出:
153 370 371 (1*1*1+5*5*5+3*3*3=153;3*3*3+7*7*7=370;3*3*3+7*7*7+1*1*1=371)
1
*/
public class Test46 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入运算次数:");
int repeat = sc.nextInt();
for (int i = 1; i <= repeat; i++) {
System.out.println("请输入范围:(例如:a b)");
int m = sc.nextInt();
int n = sc.nextInt();
for (int j = m; j <= n; j++) {
if (isNumber(j))
System.out.print(j + " ");
}
System.out.println();
}
}
private static boolean isNumber(int number) {
int a = number % 10;
int b = number / 10 % 10;
int c = number / 100;
return number == a * a * a + b * b * b + c * c * c;
/*String s = String.valueOf(number);
int sum = 0;
for (int i = 0; i < s.length(); i++) {
int digit = Character.getNumericValue(s.charAt(i));
sum += Math.pow(digit, 3);
}
return sum == number;
*/
}
}
输入一个整数,将它逆序输出。
package day10;
import java.util.Scanner;
/*
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
输入一个整数,将它逆序输出。
要求定义并调用函数reverse(number),它的功能是返回number的逆序数。
例如reverse(12345)的返回值是54321。
例:括号内是说明
输入:
4 (repeat=4)
123456 -100 -2 99
输出:
654321
-1
-2
99
*/
public class Test47 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入运算次数:");
int repeat = sc.nextInt();
for (int i = 1; i <= repeat; i++) {
System.out.println("请输入一个整数:");
int z = sc.nextInt();
int number = reverse(z);
System.out.println(number);
}
}
private static int reverse(int number) {
int temp = number;
if (number < 0) {
number = -number;
}
String s = String.valueOf(number);
int sum = 0;
/*for (int i = s.length() - 1; i > -1; i--) {
char c = s.charAt(i);
int digit = Character.getNumericValue(c);
sum += digit * (Math.pow(10, i));
}
*/
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
int digit = Character.getNumericValue(c);
sum += digit * (Math.pow(10, i));
}
if (temp < 0) {
return -sum;
} else
return sum;
}
}
输入一个正整数n,将其转换为二进制后输出。
package day10;
import java.util.Scanner;
/*
输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:
输入一个正整数n,将其转换为二进制后输出。
要求定义并调用函数 dectobin(n),它的功能是输出n的二进制。
例如,调用dectobin(10),输出1010。
输出语句:System.out.print(t); // t为某位二进制数
例:括号内是说明
输入:
3 (repeat=3)
15
100
0
输出:
1111
1100100
0
*/
public class Test48 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入运算次数:");
int repeat = sc.nextInt();
for (int i = 1; i <= repeat; i++) {
System.out.println("请输入一个正整数:");
int n = sc.nextInt();
dectobin(n);
}
}
private static void dectobin(int number) {
String s = "";
do {
s = Integer.toString(number % 2) + s;
number /= 2;
} while (number > 0);
System.out.println(s);
/* (二进制转十进制)
int sum = 0;
String s = String.valueOf(number);
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
int n = Character.getNumericValue(c);
sum += n * (Math.pow(2, s.length() - i - 1));
}
return sum;
*/
}
}
输入一个正整数n (1<n<=10),再输入n个整数,输出平均值。
package day10;
import java.util.Scanner;
/*
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
输入一个正整数n (1<n<=10),再输入n个整数,输出平均值。
例:括号内是说明
输入:
2 (repeat=2)
3 1 2 -6
5 12 2 5 4 0
输出:
aver=-1.0
aver=4.6
*/
public class Test49 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入运算次数:");
int repeat = sc.nextInt();
for (int i = 1; i <= repeat; i++) {
System.out.println("请输入一个正整数n:");
int n = sc.nextInt();
float sum = 0.0f;
int[] array = new int[n];
System.out.println("请输入n个整数:(例如:a b c……)");
for (int j = 0; j < n; j++) {
array[j] = sc.nextInt();
sum += array[j];
}
float aver = sum / n;
System.out.println("aver=" + aver);
}
}
}
输入一个正整数n (1<n<=10),再输入n个整数,输出最大值及其下标。
package day10;
import java.util.Scanner;
/*
输入一个正整数n (1<n<=10),再输入n个整数,输出最大值及其下标
(设最大值惟一,下标从0开始)。
例:括号内是说明
输入:
3 (repeat=3)
3 1 6 4
3 10 8 1
5 1 2 5 4 0
输出:
max=6, index=1(最大值6的下标是1)
max=10, index=0(最大值10的下标是0)
max=5, index=2(最大值5的下标是2)
*/
public class Test50 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入运算次数:");
int repeat = sc.nextInt();
for (int i = 1; i <= repeat; i++) {
System.out.println("请输入一个正整数n:");
int n = sc.nextInt();
int[] array = new int[n];
int max = 0, index = 0;
System.out.println("请输入n个整数:(例如:a b c……)");
for (int j = 0; j < n; j++) {
array[j] = sc.nextInt();
/*if (array[j] > max) {
max = array[j];
index = j;
}*/
if (array[index] < array[j])
index = j;
}
//System.out.println("max=" + max + ", index=" + index);
System.out.println("max=" + array[index] + ", index=" + index);
}
}
}