十进制转八进制

题目

image-20230813231442395

题目来源:桂林理工 - 877-C语言程序设计 - 2022年 - 第四题第5题

我的笨方法

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
#include <stdio.h>
int f(int num10){
int flag = 1;
if(num10<0){
flag = -1;
num10 = -1*num10;
}

int num8 = 0;
int carry = 1;//carry用于进位

while (num10 > 0) {
int i = num10 % 8;
num8 += i * carry;
carry *= 10;
num10 /= 8;
}
return num8*flag;
}
int main() {
int nums[100];
for(int i = 0; i < 100; i++) {
scanf("%d", &nums[i]);
}
for(int i = 0; i < 100; i++) {
printf("%d>>>%d\n", nums[i],f(nums[i]));
}
return 0;
}

100个输入整数的例子

1
15 80 90 53 1 65 88 4 65 184 23 710 -79 50 98 25 72 43 85 33 44 37 96 45 67 17 85 34 39 40 54 31 70 18 53 39 42 66 28 74 22 15 95 50 8 85 92 70 12 73 -94 97 99 17 90 36 72 51 6 95 35 9 88 11 38 62 24 38 30 19 51 67 148 36 28 16 18 29 68 31 138 19 80 21 87 47 73 41 15 42 27 56 67 79 75 97 25 73 92 26

运行结果

image-20230813231700238