☰
C++课后习题训练记录Day69
2026/10/19 4:32:24 网站建设 项目流程

1.练习项目:

问题描述

小蓝认为如果一个数含有偶数个数位,并且前面一半的数位之和等于后面一半的数位之和,则这个数是他的幸运数字。例如 23142314 是一个幸运数字, 因为它有 4 个数位, 并且 2+3=1+4 。现在请你帮他计算从 1 至 100000000之间共有多少个不同的幸运数字。

答案提交

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

2.选择课程

在蓝桥云课中选择课程《16届蓝桥杯省赛无忧班(C&C++ 组)4期》,选择第二章“基础算法”编程12并开始练习。

3.开始练习

(1)源码:
#include<bits/stdc++.h>
using namespace std;
const int N=1e8;
int a[100];
bool judge(int i)
{
int temp=0;
while(i!=0){
temp++;
i/=10;
}
if(temp%2!=0){
return false;
}else{
return true;
}
}
bool isLucky(int i)
{
int j=0,temp=0;
while(i!=0){
int ans=i%10;
a[j]=ans;
j++;
temp++;
i/=10;
}
int half_sum1=0,half_sum2=0;
for(int i=0;i<temp/2;i++){
half_sum1+=a[i];
}
for(int i=temp/2;i<temp;i++){
half_sum2+=a[i];
}
if(half_sum1==half_sum2){
return true;
}else{
return false;
}
}
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int ans=0;
for(int i=1;i<=N;i++){
if(judge(i)){
if(isLucky(i)){
ans++;
}
}
}
cout<<ans<<'\n';
return 0;
}

(2)检验结果

对此代码进行检验,检验后无报错,提交此代码,判题结果为正确100分。

(3)练习心得:注意每段代码末尾的分号是否存在,如不存在则需即使补充;输入法是否切换为英语模式;语法是否错误。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询