求int型正整数在内存中存储时1的个数
题目描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)
输出描述:
这个数转换成2进制后,输出1的个数
示例
输入:5
输出:2
#include<iostream>
using namespace std;
int main()
{
    int n;
    while (cin >> n) {
        int ret = 0;
        while (n) {
            if ((n & 1) == 1)
                ret++;
            n = n >> 1;
        }
        cout << ret<< endl;
    }
}
取近似值
题目描述
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。
输入描述:
输入一个正浮点数值
输出描述:
输出该数值的近似整数值
示例
输入:5.5
输出:6
#include<iostream>
#include<string>
using namespace std;
int main() {
    string num;
    while (cin >> num)
    {
        size_t pos = num.find('.');
        string str = num.substr(0, pos);
        int ret = atoi(str.c_str());
        if (num[pos + 1] >= '5' && num[pos + 1] < '9')
            cout << ret + 1 << endl;
        else
            cout << ret << endl;
    }
}
求最小公倍数
题目描述
正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。
输入描述:
输入两个正整数A和B。
输出描述:
输出A和B的最小公倍数。
/*
最小公倍数 = 两数之积除以最大公约数
*/
#include<iostream>
using namespace std;
int main()
{
    int a, b;
    cin >> a >> b;
    if (b>a)
        swap(a, b);
 
    int ret = a*b;
    int num = a%b;
    while (num)
    {
        a = b;
        b = num;
        num = a%b;
    }
    cout << ret / b << endl;
    return 0;
}