2.遞迴-求一個整數(十進位制)的二進位制
阿新 • • 發佈:2021-06-25
#include <stdio.h> int to_binary(int a); int main() { //求一個整數(十進位制)的二進位制(迴圈語句版) int a = 1234; int result; int shang; int size; int re; int b = a; int c = a; //獲取int陣列的長度 while( ( re = b / 2 ) != 0 ) { b = b / 2; size++; } //printf("size: %d\n", size + 1);int stack[size+1]; int index = 0; //將資料裝載到陣列中 while(1) { if( (shang = a / 2) == 0) { result = a % 2; //printf("%d\n",result ); stack[index++] = result; break; }else{ result = a % 2; //printf("%d\n",result ); stack[index++] = result; a= a / 2; } } //列印陣列 printf("迴圈方式:"); for (int i = size; i >= 0; i--) { printf("%d", stack[i]); } printf("\n"); printf("遞迴方式:"); to_binary(c); printf("\n"); return 0; } int to_binary(int a) { int r = a % 2; if(a / 2 != 0) to_binary(a / 2); printf("%d",r ); return 0; }