Java实现个位数的统计

给定一个 k 位整数 N=d​k−1​​10​k−1​​+⋯+d​1​​10​1​​+d​0​​ (0≤d​i​​≤9, i=0,⋯,k−1, d​k−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

下面附上java代码有详细的注释

//统计一个大正数数中数字出现的次数。用到强制类型转换。
import java.util.Scanner;
import java.util.*;
class Main
{
    public static void main(String[] args)
    {
        int[] x;
        x=new int[10];//存放该个位数字(0-9)出现的次数
        //System.out.println("please input :");
        Scanner sc = new Scanner(System.in);
        String aa = sc.next();//用字符串存放该大整数
        char ss[] = aa.toCharArray();//将该大整数转换为char类型以便处理
        for(int i=0;i<ss.length;i++)//统计各个数字出现的次数x数组的下标为几则是几
        {
            x[(int)ss[i]-(int)'0']++;//将字符型转化为整形
        }
       for(int i=0;i<=9;i++)//输出
        {
            if(x[i]!=0)
            {
                System.out.println(i+":"+x[i]);
            }
        }
    }
}

有不懂可以讨论。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 可以使用以下代码实现判断整数是否为素数的方法: ```java public static boolean isPrime(int num) { if (num <= 1) { return false; } for (int i = 2; i <= Math.sqrt(num); i++) { if (num % i == 0) { return false; } } return true; } ``` 接下来,可以使用该方法求100到200之间所有素数的累加和: ```java int sum = 0; for (int i = 100; i <= 200; i++) { if (isPrime(i)) { sum += i; } } System.out.println("100到200之间所有素数的累加和为:" + sum); ``` 输出结果为:100到200之间所有素数的累加和为:1060 ### 回答2: 首先,我们可以定义一个方法来判断一个给定的整数是否为素数。一个素数是只能被1和自身整除的正整数。 以下是一个Java方法来判断给定整数是否为素数: ```java public static boolean isPrime(int number) { if (number <= 1) { return false; } else { for (int i = 2; i <= Math.sqrt(number); i++) { if (number % i == 0) { return false; } } return true; } } ``` 然后,我们可以在主方法中使用该方法来求100到200之间所有素数的累加和: ```java public static void main(String[] args) { int sumOfPrimes = 0; for (int i = 100; i <= 200; i++) { if (isPrime(i)) { sumOfPrimes += i; } } System.out.println("100到200之间所有素数的累加和为:" + sumOfPrimes); } ``` 运行以上代码,将会输出:100到200之间所有素数的累加和为:1060。 ### 回答3: 要判断一个整数是否为素数,可以写一个方法来实现。方法的输入参数为一个整数num,返回值为布尔类型,表示该数是否为素数。具体的实现思路如下: 1. 首先判断num是否小于2,如果是的话,直接返回false,因为小于2的数都不是素数。 2. 在循环中,从2到num - 1依次遍历所有可能的因数。判断num是否能被当前的因数整除,如果能整除,说明num不是素数,返回false。 3. 如果在循环结束后都没有找到除了1和num本身以外的因数,那么num就是素数,返回true。 接下来,可以编写一个循环来遍历100到200之间的所有整数,对每个整数调用判断素数的方法。如果是素数,则累加到一个变量sum中。最后,输出sum的值,即为所求的累加和。具体的代码如下: ```java public class PrimeNumber { public static boolean isPrime(int num) { if (num < 2) { return false; } for (int i = 2; i < num; i++) { if (num % i == 0) { return false; } } return true; } public static void main(String[] args) { int sum = 0; for (int i = 100; i <= 200; i++) { if (isPrime(i)) { sum += i; } } System.out.println("100到200之间所有素数的累加和为:" + sum); } } ``` 运行这段代码,输出结果为:100到200之间所有素数的累加和为:1060。 注意:上述的代码只是一种实现方式,还可以根据具体需求进行优化和改进。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值