zoukankan      html  css  js  c++  java
  • 数字特征值——mooc《零基础学Java语言》-(浙大翁凯)第三周编程题(2)

    问题描述:

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

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

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

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

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

    输入格式:

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

    输出格式:

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

    输入样例:

    342315

    输出样例:

    13

    时间限制:500ms内存限制:32000kb
     
    代码实现:
    import java.util.Scanner;
    
    public class Main
    {
    
        public static void main(String[] args)
        {
            // TODO Auto-generated method stub
            Scanner in=new Scanner(System.in);
            int number;
            int sum=0;
            int count=0;
            int result=0;
            number=in.nextInt();
            do 
            {
                int digit=number%10;//得到number的个位
                number=number/10;//得到number去除个位的数字
                count+=1;//代表位数
                if(digit%2==1&&count%2==1) //个位与位数同时为奇数
                {
                    result=1;
                }
                else if(digit%2==0&&count%2==0) //个位与位数同时为偶数
                {
                    result=1;
                }
                else
                {
                    result=0;
                }
                sum=sum+(int)(result*Math.pow(2,count-1));//数字特征值的计算
            }while(number!=0);
            System.out.println(sum);
    
        }
    
    }
    吾生也有涯,而知也无涯
  • 相关阅读:
    【模板】Splay Tree
    【题解】CF718C Sasha and Array
    【题解】SP2916 GSS5
    【题解】[ZJOI2013] K大数查询
    【游记】GDOI 2021游记+赛后总结
    【游记】CSP2020 J/S游记
    【知识点】Manacher算法详解
    Vue 父组件传值给子组件,子组件拿到值,在倒计时完成后再调用父组件进行接口跳转
    V-model 结合select类型
    双向绑定和radio结合使用
  • 原文地址:https://www.cnblogs.com/daimasanjiaomao/p/10876598.html
Copyright © 2011-2022 走看看