问题描述
对于给定整数数组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