C++整数运算

编程基础题目解析:数学运算与时间计算

#分跳绳

描述:

学校新买来根跳绳m,每个班分n根,最多可以分给几个班的同学,还剩多少根?

(m>=n)输入:两个整数,用空格隔开,分别代表总共采购的跳绳数量以及每个班级分到的跳绳数量;输出:两个整数,用空格隔开,第一个整数代表可以分到的班级的数量,第二个整数代表剩余的跳绳数量;

样例输入:100 30样例输出3 10

#include<iostream>
using namespace std;
int main()
{
    int m,n,x,y;
    cin>>m>>n;
    x =m/n;
    y =m%n;
    cout<<x<<endl;
    cout<<y<<endl;
    return 0;
}

#求长方形的周长和面积

描述:从键盘读入2个整数,分别代表长方形的长和宽,请计算长方形的周长和面积。

输入:从键盘读入2个整数;

输出:输出有2行,第1行代表周长,第2行代表面积,

样例输入:2 3样例输出:10 6

#include<iostream>
using namespace std;
int main()
{
    int a,b,c,s;
    cin>>a>>b;
    c =(a+b)*2;
    s =a*b;
    cout<<c<<endl;
    cout<<s<<endl;
    return 0;
}

#请假时间计算

题目描述假设小明的妈妈向公司请了n天的假,那么请问小明的妈妈总共请了多少小时的假,多少分钟的假?(提示:1天有24小时,1小时有60分钟)

输入一个整数n,代表小明妈妈请假的天数。

输出两个整数,每行1个,第1行的整数代表小明妈妈请假的小时数,第2行的整数代表小明妈妈请假的分钟数。

样例输入:2 3

样例输出:10 6

#include<iostream>
using namespace std;
int main()
{
    int n,h,m;
    cin>>n;
    h =24*n;
    m =h*60;
    cout<<h<<endl;
    cout<<m<<endl;
    return 0;
}

#米老鼠偷糖果

题目描述米老鼠发现了厨房放了n颗糖果,它一次可以背走a颗,请问米老鼠背了x次之后还剩多少颗?(假设x次之后一定有糖果剩下)

输入三个整数n、a、x分别代表总共有n颗糖果,米老鼠一次背走a颗糖果,总共背了x次。

输出一个整数,代表剩余的糖果数量。

样例输入复制12 2 3

输出复制6

#include<iostream>
using namespace std;
int main()
{
    int n,a,x,y,z;
    cin>>n>>a>>x;
    y =a*x;
    z =n-y;
    cout<<z<<endl;
    return 0;
}

#买文具

题目描述花花去文具店买了1支笔和1块橡皮,已知笔x元/支,橡皮y元/块,花花付给了老板n元,请问老板应该找给花花多少钱?

输入三个整数x、y、n,分别代表了笔的单价、橡皮的单价和花花付给老板的钱(已知花花付给老板的钱n>=x+y)。

样例输入复制2 1 10

输出复制7

#include<iostream>
using namespace std;
int main()
{
    int x,y,n,z;
    cin>>x>>y>>n;
    z =n-(x+y);
    cout<<z<<endl;
    return 0;
}

#火柴棒三角形问题

题目描述摆1个火柴棒三角形需要3根火柴,那么摆2个火柴棒三角形就需要6根火柴,请问摆n个火柴棒三角形需要多少根火柴?

输入一个整数n,代表想要摆放的火柴棒三角形的数量

输出一个整数,代表了需要多少根火柴的数量

样例输入复制3

输出复制9

#include<iostream>
using namespace std;
int main()
{
    int n,z;
    cin>>n;
    z =n*3;
    cout<<z<<endl;
    return 0;
}

#火柴棒三角形问题

题目描述文具店的水笔的单价是一个整数,小明从文具店买了x支水笔花了y元。请问如果你要从该文具店购买5支水笔需要付多少钱?

输入两个整数x和y,用空格隔开,分别代表小明买的水笔的支数和他付给老板的金额

输出一个整数,代表如果你买5支水笔,应该付给老板的金额

样例输入复制10 20

输出复制10

#include<iostream>
using namespace std;
int main()
{
    int x,y,z;
    cin>>y>>x;
    z =x/y*5;
    cout<<z<<endl;
    return 0;
}

#时钟旋转(1)

题目描述时钟上面的时针从m时走到n时旋转了多少度?(m<=n,且m和n都是1~12之间的整数)

输入2个整数m和n

输出一个整数代表时针旋转的度数

样例输入复制1 4

输出复制90

#include<iostream>
using namespace std;
int main()
{
	int m,n,z;
	cin>>m>>n;
    z =(n-m)*30;
	cout <<z<<endl;
	return 0;
}

#扩建花圃问题

题目描述梅山小学有一块长方形花圃(花圃的长宽都是整数),长m米,宽未知。在修建校园时,花圃的长增加了n米,此时发现增加出来的面积有s平方米。请编程计算出原来花圃的面积是多少平方米?

输入3个整数,分别是m、n、s

输出一个整数,原来花圃的面积数

样例输入复制8 3 18

输出复制48

#include<iostream>
using namespace std;
int main()
{   
	int m,n,s,y;
	cin>>m>>n>>s;
    y =s/n*m;
	cout <<y<<endl;
	return 0;
}

#小明的游泳时间题

目描述伦敦奥运会要到了,小明在拼命练习游泳准备参加游泳比赛。这一天,小明给自己的游泳时间做了精确的计时(本题中的计时都按24小时制计算),它发现自己从a时b分一直游泳到当天的c时d 分,请你帮小明计算一下,它这天一共游了多少时间呢?小明游的好辛苦呀,你可不要算错了哦

输入一行内输入4个整数,分别表示a,b,c,d。

输出一行内输出2个整数e和f,用空格间隔,依次表示小明这天一共游了多少小时多少分钟。其中表示分钟的整数f应该小于60

样例输入复制12 50 19 10

输出复制6 20

#include<iostream>
using namespace std;
int main()
{   
	int a,b,c,d,e,f;
	cin>>a>>b>>c>>d;
    e =c-a-1;
	f =60+d-b;
	cout <<e<<endl;
	cout<<f<<endl;
	return 0;
}

### C++ 整数运算概述 C++ 提供了多种用于整数运算的操作符,这些操作符可以执行基本的算术运算、位运算以及比较运算。其中最常用的包括加法 `+`、减法 `-`、乘法 `*` 除法 `/` 运算符。 #### 基本算术运算示例 下面是一个简单的例子,展示了如何利用 C++ 执行基础的四则运算: ```cpp #include <iostream> int main() { int a = 10; int b = 3; std::cout << "a + b = " << a + b << "\n"; // 加法 std::cout << "a - b = " << a - b << "\n"; // 减法 std::cout << "a * b = " << a * b << "\n"; // 乘法 std::cout << "a / b = " << a / b << "\n"; // 整数除法, 结果为商的整数部分[^1] return 0; } ``` 此代码片段中,变量 `a` `b` 都被声明为整型 (`int`) 并初始化为其对应的值。通过使用不同的运算符组合这两个变量来进行四种基本类型的数学计算,并打印出每种情况下的结果。 #### 求余运算的应用 除了常规的四则运算外,求余 `%` 运算也是十分有用的工具之一,在很多场景下都有广泛用途,比如判断奇偶性或是实现循环队列等功能。这里给出一段简单代码展示求余运算的效果: ```cpp #include <iostream> using namespace std; void checkEvenOrOdd(int num){ if(num % 2 == 0) cout<<num<<" is even."<<endl; else cout<<num<<" is odd."<<endl; } int main(){ int number=7; checkEvenOrOdd(number); return 0; } ``` 当输入数字不是2的倍数时,则该函数会输出它是奇数;反之则是偶数[^2]。 #### 复杂应用——单次出现的数字问题解决方法 更进一步地考虑实际应用场景中的复杂度更高的案例,例如在一个数组中有多个重复三次以上的素而只有一个单独存在的素的情况下找到这个唯一不重复的素。此时可以通过巧妙运用按位与(`&`)移位(`>>`, `<<`)等位运算技巧来解决问题。具体做法如下所示: ```cpp class Solution { public: int singleNumber(std::vector<int>& nums) { int ans = 0; for (int i = 0; i < 32; ++i) { int sum_of_bits_at_i_position = 0; for(auto elem : nums){ sum_of_bits_at_i_position += ((elem >> i) & 1); } if(sum_of_bits_at_i_position % 3 != 0){ ans |= (1 << i); } } return ans; } }; ``` 这段代码实现了对给定列表内所有整数按照每位二进制位分别计数并最终确定那个仅出现过一次的那个特殊数值的过程[^3]。 #### 关于大数模幂运算的支持 最后值得一提的是,在某些情况下可能会遇到非常大的整数参与运算的需求,这时就需要特别注意选择合适的数据类型以防止溢出等问题的发生。特别是在涉及到模幂运算是尤为如此,因为这通常意味着要处理极其庞大的中间产物。因此建议采用无符号长整形(`unsigned long long`),甚至必要时候引入专门的大整数类库来辅助完成此类任务[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值