题目
7-1 sdut-循环-乘法运算
题目
接收一个正整数N,然后打印输出:N个等式,形如:i(1->N)N=iN 格式的数据。
输入格式:
只有一个正整数N(N<=100)。
输出格式:
输出共N行数据,形式如:i (1->N)*N=? 格式的表达式。
输入样例1:
4
输出样例1:
14=4
24=8
34=12
44=16
输入样例2:
5
输出样例2:
15=5
25=10
35=15
45=20
5*5=25
正确答案
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner in = new Scanner(System.in);
int a=in.nextInt();
for(int i=1;i<=a;i++) {
System.out.println(i+"*"+a+"="+i*a);
}
}
}
7-2 sdut-循环-1-求倒数之和
题目
输入一个整数n,求1/1+1/2+1/3+……+1/n的累加和。
输入格式:
输入一个正整数。
输出格式:
输出1~n的倒数之累加和,结果保留6位小数。
输入样例1:
2
输出样例1:
1.500000
输入样例2:
10
输出样例2:
2.928968
正确答案
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner in = new Scanner(System.in);
int a=in.nextInt();
double sum=0;
for(int i=1;i<=a;i++) {
sum+=1.0/i;
}
System.out.printf("%.6f",sum);
}
}
7-3 sdut-循环-2-格式化输出N个数
题目
输入一个整数n,按规定格式输出数据。
输入格式:
输入一个正整数。
输出格式:
每行输出10个数,相邻数字中间用1个空格作为分隔符。
提示:行首无空格,每行的最后一个数字之后不加空格。
输入样例1:
5
输出样例1:
1 2 3 4 5
输入样例2:
10
输出样例2:
1 2 3 4 5 6 7 8 9 10
输入样例3:
15
输出样例3:
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15
正确答案
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner in = new Scanner(System.in);
int a=in.nextInt();
double sum=0;
for(int i=1;i<=a;i++) {
System.out.printf("%d",i);
if(i%10==0) {
System.out.printf("\n");
}else if(i!=a){
System.out.printf(" ");
}
}
}
}
7-4 sdut-循环-3-评委评分(II)
题目
全国中小学生Scratch作品大赛拉开了序幕。每个参赛选手可以通过网络直接上传作品。本次比赛人人可做评委。每个网络评委可以通过网络对每一件作品进行打分。评分系统也是请程序高手设计的,能自动去掉一个最高分和一个最低分,求出平均分。
输入格式:
输入数据包括两行:
第一行为n,表示n个评委,n>2。
第二行是n个评委的打分,分数之间有一个空格。打分是可以带有小数部分的。
输出格式:
最高分
最低分
平均分
说明:最高分、最低分、平均分均保留两位小数。
输入样例:
6
10 9 8 7.9 9 9.5
输出样例:
最高分10.00
最低分7.90
平均分8.88
正确答案
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner in = new Scanner(System.in);
int n=in.nextInt();
double[] a=new double[n];
double max=-1;
double min=11;
double sum=0;
for(int i=0;i<n;i++) {
a[i]=in.nextDouble();
sum+=a[i];
if(a[i]>max) {
max=a[i];
}
if(a[i]<min) {
min=a[i];
}
}
System.out.printf("最高分%.2f\n最低分%.2f\n平均分%.2f",max,min,(sum-max-min)/(n-2));
}
}
7-5 sdut-循环-4-统计学生平均成绩与及格人数(II)
题目
编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。输入数据均在整型范围之内。
输入格式:
在第一行中给出非负整数N(N>=0),即学生人数。第二行给出N个非负整数,即这N位学生的成绩,中间以空格分隔。
输出格式:
average=成绩均值
count=及格人数
其中:平均值精确到小数点后一位。
输入样例1:
5
77 54 92 73 60
输出样例1:
average=71.2
count=4
输入样例2:
0
输出样例2:
average=0.0
count=0
正确答案
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner in = new Scanner(System.in);
int n=in.nextInt();
int count=0;
double sum=0;
double t;
for(int i=0;i<n;i++) {
t=in.nextDouble();
sum+=t;
if(t>=60) {
count++;
}
}
System.out.printf("average=%.1f\ncount=%d",n!=0?sum/n:0,count);
}
}
7-6 sdut-循环-5-百钱买百鸡
题目
我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题。
该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?
意思是:一只公鸡五块钱,一只母鸡三块钱,三只小鸡一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?
输入格式:
无输入。
输出格式:
输出所有的解决方案。
每种解题方案各在一行内输出,一行按顺序输入公鸡、母鸡、小鸡的数量,其中每个数值占2个字符的位置,不足2位的数值右对齐放置。
多种解题方案,按公鸡数量从小到大的顺序排列。
输入样例:
输出样例:
公鸡 0只,母鸡25只,小鸡75只
公鸡 4只,母鸡18只,小鸡78只
公鸡 8只,母鸡11只,小鸡81只
公鸡12只,母鸡 4只,小鸡84只
正确答案
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner in = new Scanner(System.in);
for(int i=0;i<=20;i++) {
for(int j=0;j<34;j++) {
for(int k=0;k<100;k+=3) {
if(i*5+j*3+k/3==100&&i+j+k==100) {
System.out.printf("公鸡%2d只,母鸡%2d只,小鸡%2d只\n",i,j,k);
}
}
}
}
}
}
7-7 sdut-循环-6-统计字符 (II)
题目
首先给出所输入字符的个数N,然后给出N个字符,统计其中英文字母、空格、数字字符和其他字符的个数。
输入格式:
第一行为字符的个数N;
第二行为N个字符。
输出格式:
在四行内输出:
letters=英文字母个数
blanks=空格个数
digits=数字字符个数
输入样例:
10
AaZ & 15Az
输出样例:
letters=5
blanks=2
digits=2
others=1
正确答案
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner in = new Scanner(System.in);
int n=in.nextInt();
in.nextLine();
char[] s=in.nextLine().toCharArray();
int letters=0;
int blanks=0;
int digits=0;
int others=0;
for(int i=0;i<s.length;i++) {
if(Character.isLetter(s[i])) {
letters++;
}else if(Character.isDigit(s[i])) {
digits++;
}else if(s[i]==' ') {
blanks++;
}else {
others++;
}
}
System.out.printf("letters=%d\nblanks=%d\ndigits=%d\nothers=%d",letters,blanks,digits,others);
}
}
7-8 sdut-循环-7-统计正数和负数的个数(II)
题目
输入若干个(1个以上)整数,以0结束,统计读入的正数以及负数的数量,并计算输入的数值的总和及平均值(不对0计数)。
输入格式:
输入若干个(1个以上)正整数,以0结束。
输出格式:
第1行输出正整数的个数; 第2行输出负整数的个数; 第3行输出这些输入值的总和(不对0计数); 第4行输出这些输入值的平均值(保留小数点后2位)。
输入样例1:
1 2 3 -1 -2 -3 0
输出样例1:
3
3
0
0.00
输入样例2:
1 2 0 3 -1 -2 -3
输出样例2:
2
0
3
1.50
正确答案
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner in = new Scanner(System.in);
int t=0;
int a=0;
int b=0;
int sum=0;
while((t=in.nextInt())!=0) {
if(t>0) {
a++;
}else {
b++;
}
sum+=t;
}
System.out.printf("%d\n%d\n%d\n%.2f",a,b,sum,(a+b)!=0?sum*1.0/(a+b):0);
}
}
7-9 sdut-循环-8-等腰直角三角形(II)
题目
等腰直角三角形是指一个角是直角,且两条直角边相等的三角形。这里我们输出直角边长为n的等腰直角三角形的格式如下所示:
比如n=1,则输出:
*
n=2,输出:
*
**
n=3,输出:
**
那么,你能用程序来实现么?
输入格式:
输入一个数n,表示三角形的边长。1<n<1000。
输出格式:
输出对应的用*表示的等腰直角三角形。
输入样例:
4
输出样例:
*
**
正确答案
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner in = new Scanner(System.in);
int n=in.nextInt();
for(int i=1;i<=n;i++) {
for(int j=0;j<i;j++) {
System.out.printf("*");
}
System.out.printf("\n");
}
}
}
7-10 sdut-循环-9-画菱形(II)
题目
菱形是一种特殊的平行四边形,是四条边均相等的平行四边形。题目给出菱形的边长n,用*画出菱形。如:
n=1,输出:
*
n=2,输出:
*
n=3,输出:
*
那么,你能用程序来实现么?
输入格式:
输入菱形的边长n,1<n<100。
输出格式:
输出对应的用*表示的菱形。
输入样例:
4
输出样例:
*
正确答案
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner in = new Scanner(System.in);
int n=in.nextInt();
for(int i=1;i<=n;i++) {
for(int j=0;j<n-i;j++) {
System.out.printf(" ");
}
for(int j=0;j<i*2-1;j++) {
System.out.printf("*");
}
System.out.printf("\n");
}
for(int i=n-1;i>0;i--) {
for(int j=0;j<n-i;j++) {
System.out.printf(" ");
}
for(int j=0;j<i*2-1;j++) {
System.out.printf("*");
}
System.out.printf("\n");
}
}
}