问题描述
对于给定整数数组a[],寻找其中最大值,并返回下标。
输入格式
整数数组a[],数组元素个数小于1等于100。输出数据分作两行:第一行只有一个数,表示数组元素个数;第二行为数组的各个元素。
输出格式
输出最大值,及其下标
样例输入
3 3 2 1
样例输出
3 0
import java.util.Scanner;
public class Demo4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for(int i = 0; i < arr.length; i++){
arr[i] = sc.nextInt();
}
System.out.print(max(arr) + " ");
System.out.print(max_sub(arr));
}
public static int max(int[] a){
int max = a[0];
for (int value : a) {
if (max < value) {
max = value;
}
}
return max;
}
public static int max_sub(int[] a){
int max = a[0];
int max_sub = 0;
for(int i = 0; i < a.length; i++){
if(max < a[i]){
max = a[i];
max_sub = i;
}
}
return max_sub;
}
}
从键盘读入n个整数,使用动态数组存储所读入的整数,并计算它们的和与平均值分别输出。要求尽可能使用函数实现程序代码。平均值为小数的只保留其整数部分。
样例输入: 5 3 4 0 0 2样例输出:9 1
样例输入: 73 2 7 5 2 9 1样例输出:29 4
import java.util.Arrays;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for(int i = 0; i < n; i++){
arr[i] = sc.nextInt();
}
System.out.print(Arrays.stream(arr).sum() + " ");
System.out.println((int)Arrays.stream(arr).average().orElse(0));
}
}
问题描述
编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变换,即将大写字母变成小写,小写字母变成大写,然后把这个新的字符串输出。
输入格式:输入一个字符串,而且这个字符串当中只包含英文字母,不包含其他类型的字符,也没有空格。
输出格式:输出经过转换后的字符串。
输入输出样例
编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变换,即将大写字母变成小写,小写字母变成大写,然后把这个新的字符串输出。
输入格式:输入一个字符串,而且这个字符串当中只包含英文字母,不包含其他类型的字符,也没有空格。
输出格式:输出经过转换后的字符串。
输入输出样例
样例输入
AeDb
样例输出
aEdB
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
/*
* toLowerCase();//转成小写
* toUpperCase();//转成大写
*/
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
for (int i = 0; i < s.length(); i++) {
//Character类包装一个对象中的基本类型char的值。
//isUpperCase--确定指定的字符是否为大写字符。
if (Character.isUpperCase(s.charAt(i))) {
System.out.print(Character.toLowerCase(s.charAt(i)));
} else {
System.out.print(Character.toUpperCase(s.charAt(i)));
}
}
}
}
编程实现两个复数的运算。设有两个复数 和 ,则他们的运算公式为:
要求:(1)定义一个结构体类型来描述复数。
(2)复数之间的加法、减法、乘法和除法分别用不用的函数来实现。
(3)必须使用结构体指针的方法把函数的计算结果返回。
说明:用户输入:运算符号(+,-,*,/) a b c d.
输出:a+bi,输出时不管a,b是小于0或等于0都按该格式输出,输出时a,b都保留两位。
输入:
- 2.5 3.6 1.5 4.9
输出:
1.00+-1.30i
import java.util.Scanner;
public class Demo5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char n1 = sc.next().charAt(0);
double n2 = sc.nextDouble();
double n3 = sc.nextDouble();
double n4 = sc.nextDouble();
double n5 = sc.nextDouble();
/*
* 复数的四则运算:
* 加法:(a+bi) + (c+di) = (a+c) + (b+d)i
* 减法:(a+bi) - (c+di) = (a-c) + (b-d)i
* 乘法:(a+bi) * (c+di) = (ac-bd) + (ad+bc)i
* 除法:(a+bi) / (c+di) = ((ac+bd) / (c^2+d^2)) + ((bc-ad)i / (c^2+d^2))
*/
switch(n1){
case '+':
System.out.printf("%.2f+%.2fi",(n2 + n4), (n3 + n5));
break;
case '-':
System.out.printf("%.2f+%.2fi",(n2 - n4), (n3 - n5));
break;
case '*':
System.out.printf("%.2f+%.2fi",((n2 * n4) - (n3 * n5)), ((n2 * n5) + (n3 * n4)));
break;
case '/':
System.out.printf("%.2f+%.2fi",((n2 * n4) + (n3 * n5)) / ((n4*n4) + (n5*n5)), ((n3 * n4) - (n2*n5)) / ((n4*n4) + (n5*n5)));
break;
default:
break;
}
}
}
问题描述
编写一函数lcm,求两个正整数的最小公倍数。
样例输入
一个满足题目要求的输入范例。
例:
3 5
例:
3 5
样例输出
与上面的样例输入对应的输出。
例:

例:

数据规模和约定
输入数据中每一个数的范围。
例:两个数都小于65536。
例:两个数都小于65536。
import java.math.BigInteger;
import java.util.Scanner;
public class Demo3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
BigInteger a = sc.nextBigInteger();
BigInteger b = sc.nextBigInteger();
BigInteger gcd = a.gcd(b);
/*
* divide 除
* multiply 乘
*/
System.out.println(a.multiply(b).divide(gcd));
}
}
问题描述
输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。
输入格式
一个正整数n
输出格式
一个整数,表示1出现的资料
样例输入
15
样例输出
8
数据规模和约定
n不超过30000
import java.util.Scanner;
public class Demo6 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int sum = 0;
for(int i = 0; i <= n; i++){
if(i < 10){
if(i == 1){
sum++;
}
}
if(i >= 10 && i < 100){
if(i / 10 % 10 == 1){
sum++;
}
if((i % 10) == 1){
sum++;
}
}
if(i >= 100 && i < 1000){
if(i / 100 % 10 == 1){
sum++;
}
if(i / 10 % 10 == 1){
sum++;
}
if((i % 10) == 1){
sum++;
}
}
if(i >= 1000 && i < 10000){
sum = getSum(sum, i);
}
if(i >= 10000 && i <= 30000){
if(i / 10000 % 10 == 1){
sum++;
}
sum = getSum(sum, i);
}
}
System.out.println(sum);
}
private static int getSum(int sum, int i) {
if(i / 1000 % 10 == 1){
sum++;
}
if(i / 100 % 10 == 1){
sum++;
}
if(i / 10 % 10 == 1){
sum++;
}
if((i % 10) == 1){
sum++;
}
return sum;
}
public static void code(int a){
int sum = 0;
while(a > 0){
a /= 10;
sum++;
}
System.out.println(sum);
}
}
来源:https://www.cnblogs.com/yfyyy/p/12019234.html