首页 > 其他 > 详细

#2051:Bitset(进制转化)

时间:2020-04-24 11:41:04      阅读:85      评论:0      收藏:0      [点我收藏+]

Bitset

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 18437    Accepted Submission(s): 13833

Problem Description
Give you a number on base ten,you should output it on base two.(0 < n < 1000)
 



Input

For each case there is a postive number n on base ten, end of file.
 



Output

For each case output a number on base two.
 



Sample Input

1 2 3
 



Sample Output

1 10 11


完整代码:三种写法

//递归法
#include<stdio.h>

void Bit(int n) {
    if (n) {
        Bit(n >> 1);
        printf("%d", n & 1);
    }
}

int main() {
    int n;
    while (scanf_s("%d", &n) != EOF) {
        Bit(n);
        putchar(‘\n‘);
    }
    return 0;
}

利用itoa(i ,num ,10 )函数

/*
i ---- 需要转换成字符串的数字
num ---- 转换后保存字符串的变量
10 ---- 转换数字的基数(即进制)。10就是说按10进制转换数字。还可以是2,8,16等等你喜欢的进制类型
返回值:指向num这个字符串的指针
*/
#include<stdio.h>
#include<stdlib.h>
int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        char str[4000];
        itoa(n, str, 2);
        printf("%s\n", str);
    }
    return 0;
}

正常写法(雾

#include<stdio.h>
int main()
{
    int i,j,k,l;
    __int64 m[100];
    while(scanf("%d",&i)!=EOF)
    {
        k=i;
        for(j=0;j<100;j++)
        {    
            m[j]=k%2;
            k=k/2;
            if(k==0) break;
        }
        for( ;j>=0;j--)
        printf("%I64d",m[j]);
        printf("\n");
    }
    return 0;
}

#2051:Bitset(进制转化)

原文:https://www.cnblogs.com/RioTian/p/12766204.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!