这是我参与11月更文挑战的第26天,活动详情查看:2021最后一次更文挑战
7-6 个位数统计
给定一个 k 位整数 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。
输入格式:
每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。
输出格式:
对 N 中每一种不同的个位数字,以
D:M的格式在一行中输出该位数字D及其在 N 中出现的次数M。要求按D的升序输出。输入样例:
100311 结尾无空行输出样例:
0:2 1:3 3:1 结尾无空行
做题思路
这一题最开始想的很复杂,后来借阅了一下网上的题解恍然大悟。
实际上用一个arr数组表示所有的0-9个数,逐个读取数字,出现那个数字就在第几个下标的值加一(数组初始化为0)。
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int[] arr= {0,0,0,0,0,0,0,0,0,0};//定义数组表示0-9的个数
String k=sc.next();
//int num=1-'1';
//System.out.println(num);
for(int i=0;i<k.length();i++) {
int count=k.charAt(i)-48;
arr[count]++;
}
for(int i=0;i<arr.length;i++) {
if(arr[i]!=0) {
System.out.println(i+":"+arr[i]);
}
}
}
}
7-7 计算摄氏温度
给定一个华氏温度F,本题要求编写程序,计算对应的摄氏温度C。计算公式:C=5×(F−32)/9。题目保证输入与输出均在整型范围内。
输入格式:
输入在一行中给出一个华氏温度。
输出格式:
在一行中按照格式“Celsius = C”输出对应的摄氏温度C的整数值。
输入样例:
150
结尾无空行
输出样例:
Celsius = 65
结尾无空行
做题思路
对于运算符的使用,只要公式写对,类型取对,这题就是一个输出解决的事。
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int f=sc.nextInt();
System.out.println("Celsius = "+5*(f-32)/9);
}
}