一 两个3位数之间的所有素数之和
题目内容:
对任意给定的两个正整数n和m,100<n<m<1000, 计算这两个数之间所有素数之和,包含n、m自身。
输入格式:
两个大于0的3位正整数
输出格式:
输出n与m之间的素数之和
输入样例:
200 800
输出样例:
45851
时间限制:500ms内存限制:32000kb
import java.util.Scanner;
public class Main
{
public static void main(String args[])
{
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = scanner.nextInt();
int sum = 0;
boolean isPrime;
if (n>100 && n<m && m<1000){
for (int i = n; i<=m ; i++){
isPrime = true;
if(i%2 == 0)
{
isPrime = false;
}
for (int j = 3;j<=Math.sqrt(i);j+=2){
if(i%j == 0){
isPrime = false;
break;
}
}
if (isPrime == true){
sum += i;
}
}
System.out.println(sum);
}
}
}
二 居民电费阶梯式计价器
题目内容:
为鼓励居民节约用电,电力公司采取按用电量阶梯式计价的办法,居民应交电费y(元)与月用电量x(度)相关:当x不超过100度时,按0.3元/度计费; 当x不超过200度时,按0.4元/度计费;当x不超过300度时,按0.5元/度计费;当x超过300度时,按0.8元/度计费。请编写程序实现电费的计算。
输入格式:
一个正整数,代表月用电度数x
输出格式:
居民需要缴纳的电费y
输入样例:
200
输出样例:
80.0
时间限制:500ms内存限制:32000kb
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();
double y;
y = (x<=100)?0.3*x:(x<=200)?0.4*x:(x<=300)?0.5*x:0.8*x;
System.out.println(y);
}
}
三 华氏温度与摄氏温度的换算
题目内容:
用Java语言编写一个将华氏温度转换成摄氏温度的程序,转换的公式是:
°C = (°F -32)*5/9
其中C表示摄氏温度,F表示华氏温度。
程序的输入是一个整数,表示华氏温度。输出对应的摄氏温度,也是一个整数。
输入格式:
一个整数
输出格式:
一个整数
输入样例:
100
输出样例:
37
时间限制:500ms内存限制:32000kb
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int F = scanner.nextInt();
int C = (F-32)*5/9;
System.out.println(C);
}
}
四 字符出现频率统计
题目内容:
从键盘输入一行中英文混合的文字,统计其中出现的每个英文字母的频率并依字母表顺序,依次输出统计结果,统计时忽略字母大小写的区别。
输入格式:
一行中英文混合的文字
输出格式:
输出每个字母及其出现次数,字母之间用2个空格分隔。
输入样例:
我们学习Java,we work very hard!
输出样例:
a=3 d=1 e=2 h=1 j=1 k=1 o=1 r=3 v=2 w=2 y=1
时间限制:500ms内存限制:32000kb
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
String s = reader.nextLine().toLowerCase();
char[] Lowstr = s.toCharArray();
int[] a = new int [26];
char[] t = "abcdefghijklmnopqrstuvwxyz".toCharArray();
int m=t.length;
int n=s.length();
for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) {
if(Lowstr[i]==t[j])
a[j]++;
}
}
for(int j=0;j<m;j++) {
if(a[j]!=0)
System.out.print(t[j]+"="+a[j]+" ");
}
}
}
五 求n个非负整数之和
题目内容:
输入n个非负整数,输出他们的和。 1<=n<=100,而每个数则<800。对不符合要求的输入,输出提示信息: "error”。
输入格式:
输入包括两行。 第一行:包括一个整数n,表示总共有n个数。 第二行:包含n个整数。
输出格式:
输出n个数的和。
输入样例:
4
3 2 1 4
输出样例:
10
时间限制:500ms内存限制:32000kb
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] arrays = new int[n];
int sum = 0;
if (n>=1 && n<=100){
for (int i = 0; i < arrays.length; i++) {
int nums = scanner.nextInt();
if (nums>=800 || nums<0){
System.out.println("error");
return;
}else {
arrays[i] = nums;
}
}
for (int i = 0; i < arrays.length; i++) {
sum+=arrays[i];
}
System.out.println(sum);
}else {
System.out.println("error");
return;
}
}
}
六 24小时制与12小时制的时间换算
题目内容:
编写一个程序,要求用户输入24小时制的时间,然后输出显示12小时制的时间。
输入格式:
在一行中输入带有中间的:符号(半角的冒号)的24小时制的时间,小时和分钟均采用2位数字格式,如14:18表示14点18分, 09:06表示9点零6分。
输出格式:
在一行中输出这个时间对应的12小时制的时间,数字部分格式与输入的相同,然后跟上空格,再跟上表示上午的字符串AM或表示下午的字符串PM。如05:06 PM表示下午5点零6分。
注意:在英文的习惯中,中午12点被认为是下午,所以24小时制的12:00就是12小时制的12:00 PM;而夜里12点(24:00)被认为是第二天的时间,所以是12:00 AM。
输入样例:
20:09
输出样例:
08:09 PM
时间限制:500ms内存限制:32000kb
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String time24 = scanner.nextLine();
String[] split = time24.split(":");
int h = Integer.parseInt(split[0]);
if (h>0 && h<12){
System.out.println(time24.concat(" AM"));
}else if (h==24){
split[0] = Integer.toString(h -= 12);
System.out.println(split[0]+":"+split[1]+" AM");
}else if (h>12 && h<24){
split[0] = Integer.toString(h -= 12);
if (h<10){
System.out.println("0".concat(split[0]+":"+split[1]+" PM"));
return;
}
System.out.println(split[0]+":"+split[1]+" PM");
}else if (h==12){
System.out.println(split[0]+":"+split[1]+" PM");
}
}
}
七 学习小组结伴
题目内容:
为了促进互帮互相,决定成立学习小组。小组结伴的规则是这样的:先将学号按升序排列,排在最前的一个人和排在最后的那个人结成同伴,排在第2个的与排在倒数第2个的结成同伴…依次类推,2个一组成同伴。
输入格式:
第一行是一个整数n,表明n个同学。(2<=n<=50,n为偶数) 。 第二行n个整数表明n个同学的学号,学号之间有一个空格,学号是无序输入的。
如果输入的学生数是奇数,则输出提示信息:“odd number”
输出格式:
共n/2行,每行二个整数,表明结伴同学的学号,两个学号之间有一个空格。
输入样例:
8
15 6 24 12 13 21 8 4
输出样例:
4 24
6 21
8 15
12 13
时间限制:500ms内存限制:32000kb
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
while (true){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] nums = new int[n];
if (n>=2 && n<=50){
if (n%2!=0){
System.out.println("odd number");
}else {
for (int i = 0; i < nums.length; i++) {
int num = scanner.nextInt();
nums[i] = num;
}
// Arrays.sort(nums); //sort排序
int t;
for (int i = 0; i < nums.length-1; i++) {
for (int j = 0; j < nums.length - i - 1; j++) {
if (nums[j]>nums[j+1]){
t = nums[j];
nums[j] = nums[j+1];
nums[j+1] = t;
}
}
}
int[][] peiDui = new int[n/2][2];
int max = n-1;
for (int i = 0; i < peiDui.length; i++) {
peiDui[i][0] = nums[i];
peiDui[i][1] = nums[max];
max--;
}
for (int i = 0; i < peiDui.length; i++) {
System.out.print(peiDui[i][0]+" "+peiDui[i][1]);
System.out.println();
}
break;
}
}else {
break;
}
}
}
}