给你n个整数,求他们中所有奇数的乘积。
输入第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。
输出输出n个数中的所有奇数的乘积,占一行。
样例输入5 2 5 4 6 7样例输出
35
import java.util.Scanner;
public class Main1046 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arrs = new int[n];
int sum = 1;
for (int i = 0; i < arrs.length; i++) {
arrs[i] = sc.nextInt();
if (arrs[i] % 2 == 1) {
sum *= arrs[i];
}
}
System.out.println(sum);
}
}
1047
题目描述
输入两个正整数m和n,输出m到n之间每个整数的自然对数。
输入输入包括两个整数m和n(m<=n),之间用一个空格隔开。
输出每行输出一个整数及其对数,整数占4列,对数占8列,右对齐,对数保留4位小数。
样例输入2 4样例输出
2 0.6931 3 1.0986 4 1.3863
import java.util.Scanner;
public class Main1047 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
int n = sc.nextInt();
if (m <= n) {
for (int i = m; i <= n; i++) {
System.out.printf("%4d%8.4f%n", i, Math.log(i));//格式很重要
}
}
}
}
1048
题目描述
输入一个正整数n(n<=20),输出1到n之间阶乘表。
输入输入只有一个正整数n。
输出输出1到n之间的阶乘表,格式见输出样例。每行两个数据,第一个数据占4列,第二个数据占20列,左对齐。
样例输入5样例输出
1 1 2 2 3 6 4 24 5 120提示
注意int类型的表示范围
import java.util.Scanner;
public class Main1048 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 1; i <= n; i++) {
long sum = 1;//注意int类型的范围不够大,所以要用long
for (int j = 1; j <= i; j++) {
sum *= j;
}
System.out.printf("%-4d%-20d%n", i, sum);
}
}
}
1049
题目描述
给定两个整数m和n,求出m~n这段连续的整数中所有偶数的平方和以及所有奇数的立方和。
输入由两个整数m和n组成,你可以假定m<=n.
输出应包括两个整数x和y,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。32位整数足以保存结果。
样例输入2 5样例输出
20 152
import java.util.Scanner;
public class Main1049 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
int n = sc.nextInt();
int sum1 = 0, sum2 = 0;//sum1为偶数和,sum2为奇数和
for (int i = m; i <= n; i++) {
if (i % 2 == 0) {//偶数
sum1 += i * i;
} else {//奇数
sum2 += i * i * i;
}
}
System.out.println(sum1 + " " + sum2);
}
}
1050
题目描述
求1! + 2! + ……n!
输入输入一个整数n,你可以假定n不大于10。
输出输出一个整数,即阶乘累加的结果,单独占一行。
样例输入4样例输出
33
import java.util.Scanner;
public class Main1050 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int sum1 = 0;//累加和,如果n太大的话,sum1和sum2的int范围可能不够
for (int i = 1; i <= n; i++) {
int sum2 = 1;//阶乘,循环后还原为1
for (int j = 1; j <= i; j++) {
sum2 *= j;
}
sum1 += sum2;
}
System.out.println(sum1);
}
}



