13:计算书费
描述
下面是一个图书的单价表:
计算概论 28.9 元/本
数据结构与算法 32.7 元/本
数字逻辑 45.6元/本
C++程序设计教程 78 元/本
人工智能 35 元/本
计算机体系结构 86.2 元/本
编译原理 27.8元/本
操作系统 43 元/本
计算机网络 56 元/本
JAVA程序设计 65 元/本
给定每种图书购买的数量,编程计算应付的总费用。
输入
输入第一行包含一个正整数k(0<k<100),表示有k组测试数据;接下来k行,每行包含一组测试数据。每组测试数据包含10个整数(大于等于0,小于等于100),分别表示购买的《计算概论》、《数据结构与算法》、《数字逻辑》、《C++程序设计教程》、《人工智能》、《计算机体系结构》、《编译原理》、《操作系统》、《计算机网络》、《JAVA程序设计》的数量(以本为单位)。每两个整数用一个空格分开。
输出
对于每组测试数据,输出一行。该行包含一个浮点数f,表示应付的总费用。精确到小数点后两位。
可用printf("%.2f\n", sum)来输出sum的值,并精确到小数点后两位。
样例输入
样例输出
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
double[] price = {28.9,32.7,45.6,78,35,86.2,27.8,43,56,65};//利用数组整理书的价格
int k = in.nextInt();
double sum = 0;
for(int i=1;i<=k;i++) //k种购买方案
{
sum = 0;
for(int j=0;j<10;j++)
{
double num = in.nextInt(); //各类书所购买数量
sum += num*price[j];
}
System.out.printf("%.2f\n",sum);
}
}
}
14:整数的个数
描述
给定k(1< k < 100)个正整数,其中每个数都是大于等于1,小于等于10的数。写程序计算给定的k个正整数中,1,5和10出现的次数。
输入
输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开。
输出
输出有三行,第一行为1出现的次数,,第二行为5出现的次数,第三行为10出现的次数。
样例输入
样例输出
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int[] num = new int[101];
int a=0; //1的个数
int b=0; //5的个数
int c=0; //10的个数
int k = in.nextInt();
for(int i=1;i<=k;i++)
{
num[i] = in.nextInt(); //输入数组
if(num[i]==1)
a = a+1;
else if(num[i]==5)
b = b+1;
else if(num[i]==10)
c = c+1;
}
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
15:整数的立方和
描述
给定一个正整数k(1<k<10),求1到k的立方和m。即m=1+2*2*2+…+k*k*k。
输入
输入只有一行,该行包含一个正整数k。
输出
输出只有一行,该行包含1到k的立方和。
样例输入
样例输出
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int sum = 0;
int k = in.nextInt();
for(int i=1;i<=k;i++)
{
sum += i*i*i;
}
System.out.println(sum);
}
}
16:化验诊断
描述
下表是进行血常规检验的正常值参考范围,及化验值异常的临床意义:
给定一张化验单,判断其所有指标是否正常,如果不正常,统计有几项不正常。化验单上的值必须严格落在正常参考值范围内,才算是正常。正常参考值范围包括边界,即落在边界上也算正常。
输入
输出
对于每组测试数据,输出一行。如果所有检验项目正常,则输出:normal;否则输出不正常的项的数目。
样例输入
样例输出
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int k = in.nextInt();
String[] result = new String[k];
for (int i = 0; i < k; i++) {
String sex = in.next();
double WBC = in.nextDouble();
double RBC = in.nextDouble();
double HGB = in.nextDouble();
double HCT = in.nextDouble();
double PLT = in.nextDouble();
int n = 0;
if (WBC < 4.0 || WBC > 10.0)
n++;
if (RBC < 3.5 || RBC > 5.5)
n++;
if (PLT < 100 || PLT > 300)
n++;
if ("male".equals(sex)) {
if (HGB < 120 || HGB > 160)
n++;
if (HCT < 42 || HCT > 48)
n++;
} else if ("female".equals(sex)) {
if (HGB < 110 || HGB > 150)
n++;
if (HCT < 36 || HCT > 40)
n++;
}
if (n == 0)
result[i] = "normal";
else
result[i] = String.valueOf(n);
}
for (int i = 0; i < k; i++) {
System.out.println(result[i]);
}
}
}
17:求分数序列和
描述
有一个分数序列 2/1,3/2,5/3,8/5,13/8,21/13,.... 求这个分数序列的前n项之和。
输入
输入有一行:正整数n。
输出
输出有一行:分数序列的和(浮点数,精确到小数点后4位)。
可以printf("%.4lf\n", a)输出浮点数并精确到小数点后4位。
样例输入
样例输出
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
double sum = 3.5;
double[] a = new double[1010];
double[] b = new double[1010];
a[1] = 2;
a[2] = 3;
b[1] = 1;
b[2] = 2;
for (int i = 3; i <= n; i++) {
a[i] = a[i - 1] + a[i - 2];
b[i] = b[i - 1] + b[i - 2];
sum = sum + a[i] / b[i] * 1.0;
}
System.out.printf("%.4f", sum);
}
}
18:求阶乘的和
描述
给定正整数n,求不大于n的正整数的阶乘的和(即求1!+2!+3!+...+n!)
输入
输入有一行,包含一个正整数n(1 < n < 12)。
输出
输出有一行:阶乘的和。
样例输入
样例输出
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int sum = 0;
int s = 1;
for(int i=1;i<=n;i++)
{
s = s*i;
sum = sum + s;
}
System.out.println(sum);
}
}
19:打印完数
描述
一个数如果恰好等于它的因子之和,这个数就成为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程序打印出1000之内(包括1000)所有的完数,并按如下格式输出其所有因子:
6 its factors are 1,2,3
输入
无输入
输出
输出1000以内所有的完数及其因子,每行一个完数。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int sum;
for (int i = 1; i <= 1000; i++) {
sum = 0;
for (int j = 1; j < i; j++) {
if (i % j == 0) {
sum = sum + j;
}
}
if (sum == i) {
System.out.print(i + " its factors are ");
for (int j = 1; j < i; j++) {
if (i % j == 0) {
sum = sum - j;
if (sum == 0)
System.out.print(j);
else System.out.print(j + ",");
}
}
System.out.println();
}
}
}
}
20:数组逆序重放
描述
将一个数组中的值按逆序重新存放。例如,原来的顺序为8,6,5,4,1。要求改为1,4,5,6,8。
输入
输入为两行:第一行数组中元素的个数n(1<n<100),第二行是n个整数,每两个整数之间用空格分隔。
输出
输出为一行:输出逆序后数组的整数,每两个整数之间用空格分隔。
样例输入
样例输出
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] group= new int[n];
for(int i=0;i<n;i++)
{
group[i] = in.nextInt();
}
for (int i = n-1; i >= 0; i--) {
System.out.print(group[i]+" ");
}
}
}
21:与7无关的数
描述
一个正整数,如果它能被7整除,或者它的十进制表示法中某一位上的数字为7,则称其为与7相关的数.现求所有小于等于n(n < 100)的与7无关的正整数的平方和.
输入
输入为一行,正整数n(n < 100)
输出
输出一行,包含一个整数,即小于等于n的所有与7无关的正整数的平方和。
样例输入
样例输出
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int sum = 0;
for(int i=1;i<=n;i++)
{
if(i%7!=0)
{
if((i%10!=7)&&(i/10%10!=7))
{ sum = sum+i*i;}
}
}
System.out.println(sum);
}
}
22:骑车与走路
描述
在北大校园里,没有自行车,上课办事会很不方便.但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间.假设找到自行车,开锁并车上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米.请判断走不同的距离去办事,是骑车快还是走路快.
输入
第一行为待处理的数据的数量n
其后每一行整数为一次办事要行走的距离,单位为米.
输出
对应每个整数,如果骑车快,输出一行"Bike";如果走路快,输出一行"Walk";如果一样快,输出一行"All".
样例输入
样例输出
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
double sum = 0;
for (int i = 1; i <= n; i++) {
double m = in.nextInt();
double w = m / 1.2;
double b = 50 + m / 3.0;
if (b > w)
{System.out.println("Walk");}
else if(b < w)
{System.out.println("Bike");}
else System.out.println("All");
}
}
}