JAVA数字特征值
题目内容:
对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是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 number =in.nextInt();
int numberA;
int count =0;//位数计数
int a =0;//判断数字大小
int x=0,y=0;//数字奇偶性,位数奇偶性
int sum=0;
// 输入0~100000的数字
// 判断有几位数
// 数字奇数偶数 与 数位奇数偶数 是否一致
// 输出相同奇数偶数的 二进制位数
// 可以直接判断数字大小
if (number ==0)
{
System.out.println(0);
}
else
{
//如果number大于10继续循环
do{ numberA=number%10;
number=number/10;
if (numberA==0) // 如果正好是0 需要继续下一步
{
count=count+1;//位数+1
continue;
}else if (numberA%2==0)// 判断奇偶性
{
x=0;
count=count+1;
}else if(numberA%2==1)
{
x=1;
count=count+1;
} if(count%2==0)
{
y=0;
}else
{
y=1;
}
if(x==y)
{
if (count==1)
{
sum =sum+count;
}
else
{
sum=sum+(int)Math.pow(2,count-1);
} }
}while ((double)number/10>0); System.out.println(sum);
}
}
}
JAVA数字特征值的更多相关文章
- 中国MOOC_零基础学Java语言_第3周 循环_2数字特征值
2 数字特征值(5分) 题目内容: 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值.对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推.这个整数在第n位上的数字记作 ...
- 程序设计入门——C语言 第3周编程练习 2 数字特征值(5分)
2 数字特征值(5分) 题目内容: 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值.对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推.这个整数在第n位上的数字记作 ...
- Java数字格式化输出时前面补0
Java数字格式化输出时前面补0 星期日 2014年11月30日| 分类: Java /** * 里数字转字符串前面自动补0的实现. * */ public class TestString ...
- 网易云课堂_程序设计入门-C语言_第三周:循环_2数字特征值
2 数字特征值(5分) 题目内容: 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值.对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推.这个整数在第n位上的数字记作 ...
- 数字特征值-java
题目内容: 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值.对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推.这个整数在第n位上的数字记作x,如果x和n的奇偶性相 ...
- Java数字、货币值和百分数等的格式化处理
如果我们用下列语句输出一个数 System.out.println(123456.789); 将会在Console看到输出 123456.789 那么如何得到123,456.789这种格式化的输出呢? ...
- java数字格式化
[转载] Java 提供 DecimalFormat 类,帮你用最快的速度将数字格式化为你需要的样子.下面是一个例子: importjava.text.DecimalFormat; publiccla ...
- Java数字签名算法--RSA
签名具有的特性: 安全性 抗否认性 数字签名:带有密钥(公钥.私钥)的消息摘要算法(使用私钥进行签名,使用公钥进行验证) 数字签名算法:RSA.DSA.ECDSA 数字签名特性: 验证数据完整性 认证 ...
- java 数字转中文
java代码 数字转中文,该方法只做了对int型整数的转换 private static String numberToChinese(int number) { String[] numbers = ...
随机推荐
- 一张图彻底了解Unity脚本的生命周期
以前没好好看Unity的脚本手册,原来写的是这么的全...尤其起yield www 协同 这部分看了这张图彻底的懂了..
- 如何将js的object对象传到后台--->JavaScript之对象序列化
一个问题:前台js如何传Object对象到后台哪 百度了半天,结果如下:只需要将object对象转化成json格式 然后传到后台 再在后台解析json字符串即可 那么问题来了: Object如何转 ...
- [Android Studio] Android Studio使用教程(一)
转载:http://blog.csdn.net/hyr83960944/article/details/37509113 今年的Google全球开发者 大会虽然没有新的Android系统和设备,但是还 ...
- 数学图形(2.9) Capareda曲线
还是绕在球上的线圈 #http://www.mathcurve.com/courbes3d/capareda/capareda.shtml vertices = t = to (*PI) q = ra ...
- RMAN备份与恢复总汇
1.1 备份 1.1.1 对数据库进行全备 使用backup database命令执行备份 RMAN> BACKUP DATABASE; 执行上述命令后将对目标数据库中的所有数据文件进行备份, ...
- django单表操作 增 删 改 查
一.实现:增.删.改.查 1.获取所有数据显示在页面上 model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取出数据. 目的:通过classes(班 ...
- JavaScript hash
location.hash -- 返回URL#后面的内容,如果没有#,返回空 hash,中文"哈希" 引用网址:http://www.dreamdu.com/javascript/ ...
- sscanf %*s
一次在源码里看到 %*s 的格式,从未见过百思不得其解,今天用google的code搜索,搜到一些使用范例,猜测%*s 是说这里有一些字符,长度不一定,按正则表达式的习惯,*代办任意非负整数.例如: ...
- java学习笔记5--类的方法
接着前面的学习: java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址 ...
- 如何用 js 递归输出树型
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...