HJ105 记负均正II
描述
输入 n 个整型数,统计其中的负数个数并求所有非负数的平均值,结果保留一位小数,如果没有非负数,则平均值为0
本题有多组输入数据,输入到文件末尾。
数据范围:1≤𝑛≤50000 1≤n≤50000 ,其中每个数都满足 ∣𝑣𝑎𝑙∣≤106 ∣val∣≤106
输入描述:
输入任意个整数,每行输入一个。
输出描述:
输出负数个数以及所有非负数的平均值
示例:
输入: -13 -4 -7 输出: 3 0.0
1
输入: -12 1 2 输出: 1 1.5
分析:
1.使用while循环。
代码:
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int count=0;
int count1=0;
double average=0.0;
while(sc.hasNextInt()){
int num=sc.nextInt();
if(num<0){
count++;
}else if(num>0){
average+=num;
count1++;
}
}
System.out.println(count);
if(average==0){
System.out.println(0.0);
return;
}
System.out.printf("%.1f",average/count1);
}
}
大佬代码:
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
int temp = 0;
int countN = 0;
int countP = 0;
double sum = 0.0;
while (in.hasNextInt()) { // 注意 while 处理多个 case
temp = in.nextInt();
if(temp<0){
countN++;
}else if(temp>0){
countP++;
sum += temp;
}
}
System.out.println(countN);
if(countP==0){
System.out.printf("0.0");
}else{
System.out.printf("%.1f\n",sum/countP);
}
}
}
HJ106 字符逆序
描述
将一个字符串str的内容颠倒过来,并输出。
数据范围:1≤𝑙𝑒𝑛(𝑠𝑡𝑟)≤10000 1≤len(str)≤10000
输入描述:
输入一个字符串,可以有空格
输出描述:
输出逆序的字符串
示例:
输入:I am a student 输出:tneduts a ma I
输入:nowcoder 输出:redocwon
分析:
1.使用StringBuilder类的reverse函数逆序字符串。
2.使用for循环让字符串逆序。
代码:
方法一:使用StringBuilder类的reverse函数逆序字符串。
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s=sc.nextLine();
StringBuilder sb=new StringBuilder(s);
sb=sb.reverse();
s=sb.toString();
System.out.println(s);
}
}
方法二:使用for循环让字符串逆序。
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s=sc.nextLine();
for (int i = s.length()-1; i >=0; i--) {
System.out.print(s.charAt(i));
}
}
}
大佬代码:
import java.util.*;
public class Main {
private String reverse(String str) {
StringBuilder res = new StringBuilder(str);
return res.reverse().toString();
}
public Main() {
Scanner in = new Scanner(System.in);
while (in.hasNextLine()) {
String str = in.nextLine();
String res = reverse(str);
System.out.println(res);
}
}
public static void main(String[] args)
{
Main solution = new Main();
}
}
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
char[] ch = str.toCharArray();
int length = ch.length;
for(int i=0;i<length/2;i++){
char temp = ch[i];
ch[i] = ch[length-1-i];
ch[length-1-i]=temp;
}
System.out.println(new String(ch));
}
}