零基础学习Java语言——3、循环

简介: 零基础学习Java语言——3、循环

目录

1、奇偶个数

2、数字特征值


1、奇偶个数


题目内容:


你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。


输入格式:


一系列正整数,整数的范围是(0,100000)。如果输入-1则表示输入结束。


输出格式:


两个整数,第一个整数表示读入数据中的奇数的个数,第二个整数表示读入数据中的偶数的个数。两个整数之间以空格分隔。


输入样例:


9 3 4 2 5 7 -1


输出样例:

4 2


解题:

import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int value = in.nextInt();
        int jnum=0,onum=0;
        while(value != -1)
        {
            if(value%2 == 0)
            {
                onum++;
            }
            else
            {
                jnum++;
            }
            value = in.nextInt();
        }
        System.out.println(jnum+" "+onum);
    }
}


2、数字特征值


题目内容:


对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推。这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0。按照整数的顺序把对应位的表示奇偶性的0和1都记录下来,就形成了一个二进制数字。比如,对于342315,这个二进制数字就是001101。


这里的计算可以用下面的表格来表示:

数字

3

4

2

3

1

5

数位

6

5

4

3

2

1

数字奇偶

数位奇偶

奇偶一致

0

0

1

1

0

1

二进制位值

32

16

8

4

2

1

按照二进制位值将1的位的位值加起来就得到了结果13。


你的程序要读入一个非负整数,整数的范围是[0,100000],然后按照上述算法计算出表示奇偶性的那个二进制数字,输出它对应的十进制值。


提示:将整数从右向左分解,数位每次加1,而二进制值每次乘2。


输入格式:


一个非负整数,整数的范围是[0,1000000]。


输出格式:


一个整数,表示计算结果。


输入样例:


342315


输出样例:


13


解题:

import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int value = in.nextInt();
        int result = 0;
        if(value>=0 && value <= 1000000)
        {
            int i = 0;
            while(value > 0)
            {
                int wvalue = value%10;
                i++;
                if (wvalue%2==0 && i%2==0)
                {
                    result += Math.pow(2,i-1);
                }
                else if(wvalue%2!=0 && i%2!=0)
                {
                    result += Math.pow(2,i-1);
                }
                else
                {
                    result += 0;
                }
                value /= 10;
            }
        }
        System.out.println(result);
    }
}

mooc上的课程习题,边学习边记录!

目录
打赏
0
0
0
0
3
分享
相关文章
|
19天前
|
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
71 3
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
66 5
Java线程池ExecutorService学习和使用
通过学习和使用Java中的 `ExecutorService`,可以显著提升并发编程的效率和代码的可维护性。合理配置线程池参数,结合实际应用场景,可以实现高效、可靠的并发处理。希望本文提供的示例和思路能够帮助开发者深入理解并应用 `ExecutorService`,实现更高效的并发程序。
37 10
【潜意识Java】深度分析黑马项目《苍穹外卖》在Java学习中的重要性
《苍穹外卖》项目对Java学习至关重要。它涵盖了用户管理、商品查询、订单处理等模块,涉及Spring Boot、MyBatis、Redis等技术栈。
130 4
【潜意识Java】Java基础教程:从零开始的学习之旅
本文介绍了 Java 编程语言的基础知识,涵盖从简介、程序结构到面向对象编程的核心概念。首先,Java 是一种高级、跨平台的面向对象语言,支持“一次编写,到处运行”。接着,文章详细讲解了 Java 程序的基本结构,包括包声明、导入语句、类声明和 main 方法。随后,深入探讨了基础语法,如数据类型、变量、控制结构、方法和数组。此外,还介绍了面向对象编程的关键概念,例如类与对象、继承和多态。最后,针对常见的编程错误提供了调试技巧,并总结了学习 Java 的重要性和方法。适合初学者逐步掌握 Java 编程。
56 1
Java语言------图书馆管理系统(入门简略版)
Java语言------图书馆管理系统(入门简略版)
145 0
Java语言------图书馆管理系统(入门简略版)
【Java编程进阶】Java语言基础入门篇
整个Java全栈编程知识体系十分庞大,包括JavaSE知识,Web前端,Web后端,数据库相关的知识等,初学者应该系统踏实的学习,一步一个脚印。Java语言是一种完全面向对象的跨平台语言。有很多突出的优点,例如简单易学,面向对象,分布式,安全可靠,解释型语言,跨平台运行,可移植高性能多线程,可实现网络编程等。
215 0
【Java编程进阶】Java语言基础入门篇
Java学习路线-53:EL(表达式语言)入门及 EL 函数库
Java学习路线-53:EL(表达式语言)入门及 EL 函数库
131 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等