首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

整数的分类处理 C++

题目描述 给定 N 个正整数,要求你从中得到下列三种计算结果: A1 = 能被 3 整除的最大整数 A2 = 存在整数 K 使之可以表示为 3K+1 的整数的个数 A3 = 存在整数 K 使之可以表示为...3K+2 的所有整数的平均值(精确到小数点后 1 位) 输入 输入首先在第一行给出一个正整数 N,随后一行给出 N 个正整数。...输入样例1  8 5 8 7 6 9 1 3 10 输出样例1 9 3 6.5 思路分析 先解决主要问题: A1 = 能被 3 整除的最大整数:先对数组排序,这里为了方便三个一起判断就从小到大排序,碰到能被...3 整除的就刷新A1的值; A2 = 存在整数 K 使之可以表示为 3K+1 的整数的个数:其实就是找和3取余余数为1的数的个数,数就完事了; A3 = 存在整数 K 使之可以表示为 3K+2 的所有整数的平均值...输出NONE的问题: 完全可以设一个flag或者tag来判断有没有,但因为全是正整数,所以我就根据A的值来判断了,A1设计初始值为负数,如果没有找到,那么仍是负数,A2和A3是数数的,如果为0,说明没有找到

17530
您找到你想要的搜索结果了吗?
是的
没有找到

C++手搓大整数

基本思路 实现大整数有两种方法,一种是将大数当成字符来处理,手动计算加减乘除,另一种则是将大数分成多个小部分用基本类型存储处理 我们这里实现第二种方法的,目前版本是支持非负整数 基本思路是将一个大整数切分成几段小的用...vector容器来存储每段,例如 1111222233334444 integer[1]=11112222 integer[0]=33334444 重载赋值运算符 重载赋值运算符,实现从基本数据类型到大整数的转换...存储各个段 int segments = 0; // 切分的段数 BigInteger operator=(long long num) { // 重载赋值运算符,从基本数据类型转换大整数存储...width); // 计算每段开始的地方 integer.emplace_back(stoi(num.substr(start, end - start))); // 字符串转整数...我们先实现一个重载小于的判断,先比较两个大整数的段数,如果段数不同直接返回段数的比较就行,如果段数相同,由于大整数的低位存储在vector的前面,所以从后面段开始比较高位,如果高位不相同,那么返回高位的比较结果就行

8700

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券