題目内容:對數字求特征值是常用的編碼算法,奇偶特征是一種簡單的特征值。對于一個整數,從個位開始對每一位數字編号,個位是1号,十位是2号,以此類推。這個整數在第n位上的數字記作x,如果x和n的奇偶性相同,則記下一個1,否則記下一個0。按照整數的順序把對應位的表示奇偶性的0和1都記錄下來,就形成了一個二進制數字。比如,對于342315,這個二進制數字就是001101。
這裡的計算可以用下面的表格來表示:
數字342315數位654321數字奇偶奇偶偶奇奇奇數位奇偶偶奇偶奇偶奇奇偶一緻001101二進制位值32168421
你的程式要讀入一個非負整數,整數的範圍是[0,1000000],然後按照上述算法計算出表示奇偶性的那個二進制數字,輸出它對應的十進制值。
提示:将整數從右向左分解,數位每次加1,而二進制值每次乘2。
輸入格式:
一個非負整數,整數的範圍是[0,1000000]。
輸出格式:
一個整數,表示計算結果。
#include<stdio.h>
#include<math.h>
int main()
{
int x,t,y,z=0;
scanf("%d",&x);
for(int i=1;x>=1;i++){
t=x%10;
x/=10;
if(i%2 == 1){
if(t%2 == 1) y=1;
else y=0;
}
else{
if(t%2 == 0)y=1;
else y=0;
}
if(y==1) z+=pow(2,i-1);
}
printf("%d",z);
return 0;
}
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxSP9ElT0kkaOFzYU5EM4wmYwhGWhxGZzwEMW1mY1RzRapnTtxkb5ckYplTeMZTTINGMShUYfRHelRHLwEzX39GZhh2css2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xyayFWbyVGdhd3LcV2Zh1Wa9M3clN2byBXLzN3btg3PnBnaugDO4MDMyAjM1EDMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)