题解 | #进制转换#

进制转换

https://www.nowcoder.com/practice/0337e32b1e5543a19fa380e36d9343d7

#include<stdio.h>
#include<string.h>
#define MaxSize 100
int f(int* A, int n) {
    int i, ans;
    for (i = 0; i < n - 1; i++) {
        A[i + 1] += 10 * (A[i] % 2);
        A[i] /= 2;
    }
    ans = A[n - 1] % 2;
    A[n - 1] /= 2;
    return ans;
}
int main() {
    char s[100];
    while (gets(s)) {
        int i, j, ans, n = strlen(s);
        int A[n], B[MaxSize];
        for (i = 0; i < MaxSize; i++)B[i] = 0;
        for (i = 0; i < n; i++)A[i] = (int)(s[i] - '0');
        for (j = 0; j < MaxSize; j++)B[j] = f(A, n);
        for (j = MaxSize - 1; B[j] == 0; j--);
        while (j >= 0)printf("%d", B[j--]);

        printf("\n");
    }
}

全部评论

相关推荐

12-20 11:21
复旦大学 Java
点赞 评论 收藏
分享
迷茫的大四🐶:干脆大厂搞个收费培训得了,这样就人均大厂了
点赞 评论 收藏
分享
12-04 15:13
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务