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

数字特征值(5分)

题目内容:

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


图片.png

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

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

输入格式:
一个非负整数,整数的范围是[0,1000000]。
输出格式
一个整数,表示计算结果。

输入样例
342315
输出样例
13

#include

int main()
{

    int A,a,d;
    int b=0;
    int c=1;
    int Ten=0;
    scanf("%d", &A);        //输入整数
    while(A != 0)
    {
        a=A%10;             //取出整数的最后一位数
        b++;                //位数+1
        A/=10;              //丢掉整数的最后一位数
        if ((a+b)%2 == 0)   //奇偶一致
            d = 1;
        else                //奇偶不一致
            d = 0;
        Ten = c*d + Ten;    //十进制数
        c*=2;               //二进制位值上升一次
    }
    printf("%d", Ten);      //输出十进制数

    return 0;
}
成功!.png

你可能感兴趣的:(【第四周作业02数字特征值】程序设计入门——C语言(翁恺))