注册 登录
编程论坛 C语言论坛

新手循环结构的题 数字特征

clb141914845 发布于 2020-12-13 16:08, 1560 次点击
数字特征值(5分)
题目内容:

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

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



输出格式:

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



输入样例:

342315



输出样例:

13
3 回复
#2
rjsp2020-12-13 17:03
程序代码:
#include <stdio.h>

int main(void)
{
    unsigned a;
    scanf( "%u", &a );
   
    unsigned result = 0;
    for( unsigned i=0; a!=0; a/=10,++i )
        result += (a%10%2 != i%2) * (1u<<i);
    printf( "%u\n", result );
}
#3
clb1419148452020-12-13 18:13
源代码有,但是不理解
#4
风过无痕19892020-12-13 19:51
回复 3楼 clb141914845
将你的代码发出来
1