news 2026/1/12 10:30:42

GESP认证C++编程真题解析 | B3850 [GESP202306 四级] 幸运数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GESP认证C++编程真题解析 | B3850 [GESP202306 四级] 幸运数

​欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总帖:GESP认证C++编程真题解析 | 汇总


【题目来源】

洛谷:[B3850 GESP202306 四级] 幸运数 - 洛谷

【题目描述】

小明发明了一种 “幸运数”。一个正整数,其偶数位不变(个位为第1 11位,十位为第2 22位,以此类推),奇数位做如下变换:将数字乘以7 77,如果不大于9 99则作为变换结果,否则把结果的各位数相加,如果结果不大于9 99则作为变换结果,否则(结果仍大于9 99)继续把各位数相加,直到结果不大于9 99,作为变换结果。变换结束后,把变换结果的各位数相加,如果得到的和是8 88的倍数,则称一开始的正整数为幸运数。

例如,16347 1634716347:第1 11位为7 77,乘以7 77结果为49 4949,大于9 99,各位数相加为13 1313,仍大于9 99,继续各位数相加,最后结果为4 44;第3 33位为3 33,变换结果为3 33;第5 55位为1 11,变换结果为7 77。最后变化结果为76344 7634476344,对于结果76344 7634476344其各位数之和为24 2424,是8 88的倍数。因此16347 1634716347是幸运数。

【输入】

输入第一行为正整数N NN,表示有N NN个待判断的正整数。约定1 ≤ N ≤ 20 1 \le N \le 201N20

从第2 22行开始的N NN行,每行一个正整数,为待判断的正整数。约定这些正整数小于1 0 12 10^{12}1012

【输出】

输出N NN行,对应N NN个正整数是否为幸运数,如是则输出T,否则输出F

提示:不需要等到所有输入结束再依次输出,可以输入一个数就判断一个数并输出,再输入下一个数。

【输入样例】

2 16347 76344

【输出样例】

T F

【算法标签】

《洛谷 B3850 幸运数》 #函数与递归# #GESP# #2023#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong// 使用长整型constintN=15;// 数组大小,用于存储数字的各位intn;// 测试用例数量inta[N];// 存储数字的各位数字/** * 递归计算数字的数字根 * 数字根:反复将数字的各位相加,直到得到一位数 * 例如:38 -> 3+8=11 -> 1+1=2 * @param x 输入数字 * @return 数字根 */intcalc(intx){// 调试输出// cout << "x " << x << endl;// 如果已经是一位数,直接返回if(x<=9){returnx;}// 计算各位数字之和intres=0;while(x){res+=x%10;// 加上个位数字x/=10;// 去掉个位}// 递归计算数字根returncalc(res);}/** * 检查数字是否符合特定规则 * 规则: * 1. 从个位开始(第1位),奇数位置的数字乘以7 * 2. 计算乘积的数字根 * 3. 所有处理后的数字之和能被8整除 * @param x 要检查的数字 * @return 如果处理后数字之和能被8整除返回true,否则false */boolcheck(intx){// 将数字分解为各位数字intcur=0;// 数字位数while(x){a[++cur]=x%10;// 存储个位x/=10;// 去掉个位}// 处理奇数位置的数字for(inti=1;i<=cur;i++){if(i%2==1)// 奇数位置(从个位开始算第1位){inttmp=a[i]*7;// 乘以7a[i]=calc(tmp);// 计算数字根}}// 计算处理后的数字之和intans=0;for(inti=1;i<=cur;i++){ans+=a[i];}// 判断和是否能被8整除returnans%8==0;}signedmain()// 因为使用了#define int long long{// 输入测试用例数量cin>>n;// 处理每个测试用例while(n--){intx;cin>>x;// 检查数字并输出结果if(check(x)){cout<<"T"<<endl;// 符合条件}else{cout<<"F"<<endl;// 不符合条件}}return0;}

【运行结果】

2 16347 T 76344 F
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/29 3:31:30

【Java毕设全套源码+文档】基于springboot的网购商城管理系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2025/12/27 3:10:42

【Java毕设全套源码+文档】基于springboot的宠物猫售卖管理系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/1/2 17:42:47

AI有声书制作新方式:EmotiVoice自动朗读带情绪

AI有声书制作新方式&#xff1a;EmotiVoice自动朗读带情绪 在有声内容消费日益增长的今天&#xff0c;用户早已不再满足于“能听”的机械朗读。无论是通勤路上收听小说&#xff0c;还是孩子睡前聆听童话故事&#xff0c;听众期待的是富有情感、角色分明、沉浸感强的声音演绎。…

作者头像 李华
网站建设 2026/1/3 9:01:53

jQuery EasyUI 应用 - 创建 CRUD 应用

jQuery EasyUI 应用 - 创建 CRUD 应用 数据收集并妥善管理数据是网络应用常见的必要功能。CRUD&#xff08;Create 创建、Read 读取、Update 更新、Delete 删除&#xff09;允许我们生成页面来列表显示并编辑数据库记录。本教程将演示如何使用 jQuery EasyUI 框架实现一个基本…

作者头像 李华
网站建设 2025/12/17 11:15:24

jQuery EasyUI 拖放 - 创建拖放的购物车

jQuery EasyUI 拖放 - 创建拖放的购物车 使用 jQuery EasyUI 的 draggable 和 droppable 插件&#xff0c;可以轻松实现一个交互式的拖放购物车应用。用户可以将商品图片拖动到购物车区域&#xff0c;系统自动添加商品、更新数量&#xff08;重复拖动时增加数量&#xff09;和…

作者头像 李华