ZZULIOJ 1150: 数数多少个整数,Java

ZZULIOJ 1150: 数数多少个整数,Java

题目描述

小明的老师给小明出了一道题目:数数一篇文章出现了多少个数字,请你帮帮他吧。

输入

输入一个字符串,由空格、英文字母、数字组成,以回车结束,长度小于1000。

输出

输出整数个数(不是数字字符个数哦)。

样例输入 Copy
365grh 27ha578
样例输出 Copy
3
提示
注意:010是两个数字,010
import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        String str = bf.readLine();
        int sum = 0;
        boolean ok = false;
        for (int i = 0; i < str.length(); i++) {
            char ch = str.charAt(i);
            if (ch == '0' && !ok) {
                sum++;
            }
            if (ch > '0' && ch <= '9' && !ok) {
                sum++;
                ok = true;
            }
            if (ch == ' ' || ch > '9') {
                ok = false;
            }
        }
        bw.write(sum + "\n");
        bw.close();
    }
}
<think>嗯,用户问的是ZZULI OJ平台第1027题的Java解法或相关信息。首先,我需要确认题目内容。根据引用[3],题目是判断一个三位数是否为水仙花数。水仙花数的定义是各位数字的立方和等于其本身,比如153=1³+5³+3³。 用户之前看到的是C语言解法,现在需要Java版本。首先,我应该回忆Java的基本输入输出方法,比如使用Scanner类。然后,分解三位数的各位数字,可以用除法和取余操作,比如百位是n/100,十位是(n/10)%10,个位是n%10。接着计算立方和,判断是否等于原数,输出yes或no。 需要注意的是,题目要求输入是三位正整数,所以在Java中需要确保输入的数在100到999之间。不过题目可能已经保证输入合法,所以代码可能不需要额外验证。另外,输出要严格小写的“yes”或“no”,所以要注意拼写正确。 然后,根据用户提供的引用[3]中的C代码,转换成Java的结构。比如使用Scanner读取输入,然后分解各个位数,进行条件判断。最后输出结果。 可能的问题点包括输入处理是否正确,尤其是Scanner的nextInt()方法是否正确获取整数。另外,要注意Java中的整数除法是否会影响结果,不过这里三位数的分解应该没有问题。 最后,生成相关问题,可能涉及水仙花数的扩展,比如四位数的玫瑰花数,或者不同语言的实现比较,以及算法优化等。</think>### ZZULI OJ 1027: 判断水仙花数的Java解法 #### 题目分析 水仙花数定义:三位数的各位数字立方和等于其本身,例如$153=1^3+5^3+3^3$[^3]。需读取一个三位数,输出`yes`或`no`。 #### Java解法实现 ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int a = n / 100; // 获取百位 int b = (n / 10) % 10; // 获取十位 int c = n % 10; // 获取个位 if (n == a*a*a + b*b*b + c*c*c) { System.out.println("yes"); } else { System.out.println("no"); } } } ``` #### 实现说明 1. **输入处理**:通过`Scanner`读取三位整数 2. **位数拆分**:使用整除和取余运算提取百位、十位、个位 3. **条件判断**:直接比较原数与各位立方和 4. **输出规范**:严格按小写输出`yes`/`no`[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wa_Automata

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值