Task Description
將二進位數字轉換十進位數字。
Hint
getDecimalValue.h
打上 function header 以及相關的設定。
#include <stdio.h>
#include <stdlib.h>
struct ListNode
{
int val;
struct ListNode *next;
};
int getDecimalValue( struct ListNode* head);
|
getDecimalValue.c
撰寫程式碼後對應上傳。
#include "getDecimalValue.h"
int getDecimalValue( struct ListNode* head)
{
}
|
main.c
這個檔案無法更改也無須上傳。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #include "getDecimalValue.h"
void Construct( struct ListNode* node, int length, int num)
{
int a;
scanf ( "%d" , &a);
node->val = a;
if (num >= length)
{
node->next = NULL;
return ;
}
node -> next = ( struct ListNode* ) malloc ( sizeof ( struct ListNode));
num++;
Construct(node->next, length, num);
}
int main()
{
struct ListNode *head;
int n, a, length;
head = ( struct ListNode* ) malloc ( sizeof ( struct ListNode));
scanf ( "%d" , &n);
while (n--)
{
scanf ( "%d" , &length);
Construct(head, length, 1);
int ans = getDecimalValue(head);
printf ( "%d\n" , ans);
}
}
|
Input Format
輸入第一行表示有 m 個二進位數字。
之後每兩行的第一行表示該數字有 n 個0或1 (0≤n≤30),第二行表示這些0或1。
必須使用struct實作。
Output Format
印出十進位數字
Sample Input
Sample Output