第三周_循环_数字特征

作者: 掌灬纹 | 来源:发表于2019-03-25 11:09 被阅读6次

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

输入样例:

342315

输出样例:

13

这个题是比较有意思和价值的,正好考察了你对循环的掌握,还需要一丢位运算的技巧,因为与前面几道题性质的差别,我详细的说一下我的思路,该题很重要的一个变量就是对位数的控制变量,下面代码用counts代指进行了第几位的比较,位数的作用:1.判断当前是进行比较的奇数还是偶数位;2.对最后输出结果的控制,是移位运算移几位的记录

值得一提的,每次循环对输入的n除10去掉整数的个位数部分,对当前的数判断奇偶即可,这样,循环的条件也就自然明了,while --n > 0

具体的代码如下:

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int n = sc.nextInt();

int ans = 0;

int counts = 1;

while(n > 0) {

if((counts&1) == 0) {//偶数位

if((n&1) == 0)//偶偶相同

ans += 1<<(counts - 1);

}else {//奇数位

if((n&1) != 0)

ans += 1<<(counts - 1);

}

n /= 10;

counts++;

}

System.out.println(ans);

}

}

相关文章

  • 第三周_循环_数字特征

    对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是1号,...

  • 异常处理

    异常值检测特征分为类别特征和数字特征 数字特征 相关性分析、查看特征的偏度和峰度、数字特征相互之间的关系可视化、多...

  • 数字循环

  • for loop in linux

    数字性循环 2.字符性循环

  • Shell循环

    1、查询结果 2、循环数组 3、while循环 4、for循环数字

  • vue循环指令:v-for

    循环数组: 循环对象数组 遍历对象 循环数字 数字从1开始v-for循环加key作为唯一标识,在单选框前插时不会出...

  • 【第四周作业02数字特征值】程序设计入门——C语言(翁恺)

    数字特征值(5分) 题目内容: 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开...

  • while循环

    while 循环输出 1-10 while死循环判断 批量添加用户 猜数字 随机数字字母

  • 2019-05-05

    数字特征值 0 是偶数

  • JS基础遍历方法

    定义一个数字数组 for循环 for...in循环 for...of循环: 不需要通过索引访问 while循环: ...

网友评论

    本文标题:第三周_循环_数字特征

    本文链接:https://www.haomeiwen.com/subject/emcvvqtx.html