C語言程式設計_zju——第4周編程練習2_數字特徵值

來源:互聯網
上載者:User

標籤:二進位   輸入格式   編碼   限制   內容   順序   course   0kb   desc   

2

數字特徵值(5分)

題目內容:

對數字求特徵值是常用的編碼演算法,奇偶特徵是一種簡單的特徵值。對於一個整數,從個位開始對每一位元字編號,個位是1號,十位是2號,以此類推。這個整數在第n位上的數字記作x,如果x和n的奇偶性相同,則記下一個1,否則記下一個0。按照整數的順序把對應位的表示奇偶性的0和1都記錄下來,就形成了一個位元字。比如,對於342315,這個位元字就是001101。

 

這裡的計算可以用下面的表格來表示:

 

數字

3

4

2

3

1

5

數位

6

5

4

3

2

1

數字奇偶

數位奇偶

奇偶一致

0

0

1

1

0

1

二進位位值

32

16

8

4

2

1

 

你的程式要讀入一個非負整數,整數的範圍是[0,1000000],然後按照上述演算法計算出表示奇偶性的那個位元字,輸出它對應的十進位值。

 

提示:將整數從右向左分解,數位每次加1,而二進位值每次乘2。

 

輸入格式:

一個非負整數,整數的範圍是[0,1000000]。

 

輸出格式:

一個整數,表示計算結果。

 

輸入範例:

342315

 

輸出範例:

13

時間限制:500ms記憶體限制:32000kb
 1 #include<stdio.h> 2 int main(){ 3     int num,dicN,binN,single,twoN=1,i=1,tenN=1; 4     scanf("%d",&num); 5     int temp=num; 6     for(;(temp/tenN)!=0;i++){ 7         single=num%10;//printf("single=%d\n",single);         8         binN=!((single%2)^(i%2)); 9         dicN+=binN*twoN;    10         twoN*=2;11         tenN*=10;12         num=temp/tenN;13     }    14     printf("%d\n",dicN);15     return 0;16 } 

 

 

 

about 50min

題目來源

程式設計入門——C語言_浙江大學_中國大學MOOC(慕課) http://www.icourse163.org/course/ZJU-199001

 

C語言程式設計_zju——第4周編程練習2_數字特徵值

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.