输入一正整数,其对应的二进制形式为

#include <iostream>
using namespace std;
void FX(int );
int main()
{
    int n;
    cout<<"请输入一个正整数:";
    cin>>n;
    cout<<n<<":";
    FX(n);
    return 0;
}
void FX(int n)
{
    int a=n;
    if (a==1)
        cout<<a;
    if(n==1)
        return;
    else
    {
        FX(n/2);
        cout<<n%2;
        return;
    }
}

时间: 2024-10-20 20:59:34

输入一正整数,其对应的二进制形式为的相关文章

每天一道算法题:数字二进制形式中1的个数

题目:请实现一个函数,属于一个整数,输出该数二进制表示中1的个数,例如把9表示成二进制是1001,有2位为1.因此如果输入9,该函数输出2. 可能的死循环陷阱 看完题目,相信大家很快就能想到一个解题思路:先判断整数二进制表示中最右边的一位是否为1,接着把输入的整数右移一位,此时原来处于从右边起的第二位被移动至最右边了,再判断是不是1,这样每次移动一位,直到这个整数变成0,即能够得到整数二进制表示形式中1的个数,而现在问题变为如何判断数字的最后一位为1,其实这个也很简单,只需要将数字与1做与运算,

java语言将任意一个十进制数数字转换为二进制形式,并输出转换后的结果

1 package com.llh.demo; 2 3 import java.util.Scanner; 4 5 /** 6 * 7 * @author llh 8 * 9 */ 10 public class Test { 11 /* 12 * 将任意一个十进制数数字转换为二进制形式,并输出转换后的结果(使用数组存储) 13 */ 14 public static void main(String[] args) { 15 Scanner sc = new Scanner(System.in

ACM:每行输入一个正整数n,找出与它对应的比它大的最小的且它们对应的二进制中1的个数一样多的正整数.

#include<stdio.h> //每行输入一个正整数i,找出与他对应的比它大的最小的正整数且他们的二进制中1的个数一样多. /* 样例输入: 样例输出: 1 2 2 4 3 5 4 8 78 83 0 */ //78的二进制位1001110,有4个1:83比78大且83的二进制位1001011也是4个1. int main() { int count1,count2;//count1统计原数据对应的二进制中1的个数,count2... int a[100];//存输入的数字 int i=

C语言中使用二进制形式输出

#include 〈stdio.h〉 int main(void) {     int userInt; //接收用户输入的无符号整型     printf("请输入您要转换的整数:");     scanf("%u", &userInt);     int binArr[33] = {0}; //一个int类型为4字节32位,符号占一位     int cElement = 0; //统计元素个数     while(1){         if(user

判断给定十进制整数的二进制形式中含有几个1

两种判断一个给定整数的二进制形式中含有几个1的简单方法: 主要思想是通过按位与(&)运算和位移运算(<< >>)实现 1 unsigned int_number( int n) 2 { 3 if (n < 0) 4 return; 5 unsigned count = 0; 6 while (n != 0) 7 { 8 if ((n & 1) != 0) 9 ++count; 10 n >>= 1; 11 } 12 return count; 13

char类型变量二进制形式输出

C语言char类型(1字节)以二进制形式输出: #include<stdio.h> void chrtobit(char chr)/* chr是要以二进制形式输出的char值*/{ char tchr=chr; int i; for(i=7;i>=0;i--) { char tmpc=tchr; tmpc=tchr&(1<<i); printf("%d",tmpc>>i); } printf("\n");}

48.输入任意正整数,编程判断该数是否为回文数(回文数是指从左到右读与从右到左读一样,如12321)

//1.输入一个数,将其每一位分离,并保存如一个数组 //2.判断数组最后录入的一位是第几位 //3.循环判断是否满足回问数的要求 #include<iostream> using namespace std; int main() { int n,temp; int k=0; int a[20]; cout<<"please input an number: "<<endl; cin>>n; for(int i=0;i<20;i+

[华为机试]输入一个正整数,输出2000年1月1日经过该整数天后的日期.

//输入一个正整数,输出2000年1月1日经过该整数天后的日期.已测试,输入值可以为0~1095727 //如,100天后,日期为2000 4 10 #include<stdio.h> #define MAX_YEAR 5000//年数可以从2000一直到4999年. //函数功能:求解第year年共有多少天 int day_in_year(int year) { if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400

int类型变量以二进制形式输出

C语言int类型(4字节)以二进制形式输出: #include<stdio.h> void intobit(int num)/*num是要以二进制形式输出的int值将二进制数据逐个置1,在右移,依次实现逐个输出*/{ int tnum=num; int i; for(i=31;i>=0;i--) { int tmpa=tnum; tmpa=tnum&(1<<i); ((i+1)%8==0&&i!=31)?printf(" %d",t