网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月14日漏签0天
c语言吧 关注:798,983贴子:4,358,518
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 13回复贴,共1页
<<返回c语言吧
>0< 加载中...

题目求助。。。

  • 只看楼主
  • 收藏

  • 回复
  • GtRs
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

下面是我的代码,我觉得没什么问题,但是输出始终是2207030,答案是4430091,deepseek也没查出来问题(而且认为答案是4430093)。。。。求助万能的吧u
#include <bits/stdc++.h>using namespace std;int main(){ int thefront; int theback; int tf; int tb; int t=0; for(int i=1;i<=100000000;i++){ if(i%2==0){ if(i>=10 && i<=99){ thefront=i/10; theback=i%10; if(thefront==theback){ t++; } } else if(i>=1000 && i<=9999){ thefront=i/100; theback=i%100; tf=(thefront/10)+(thefront%10); tb=(theback/10)+(theback%10); if(tf==tb){ t++; } } else if(i>=100000 && i<=999999){ thefront=i/1000; theback=i%1000; tf=(thefront/100)+(thefront%100)/10+thefront%10; tb=(theback/100)+(theback%100)/10+theback%10; if(tf==tb){ t++; } } else if(i>=10000000 && i<=99999999){ thefront=i/10000; theback=i%10000; tf=(thefront/1000)+(thefront%1000)/100+(thefront%100)/10+thefront%10; tb=(theback/1000)+(theback%1000)/100+(theback%100)/10+theback%10; if(tf==tb){ t++; } } } } cout<<t<<endl; return 0;}


  • Lason•᷄ࡇ•᷅
  • 彩虹面包
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
题目要求数位的个数是偶数,而并非这个数本身是偶数。并且这么写超时风险还蛮大的。


2025-08-14 01:15:30
广告
不感兴趣
开通SVIP免广告
  • 油炸不良人
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
4430091
循环了几十秒,差点以为死循环了……


  • liujiajin518
  • 低能力者
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这种位数直接能算
存个数组
2 4 6 8
这几个位数里循环
模,除pow(10,位数/2)分别求位数和
对比


  • ~ZXP4~
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼



  • kerrea_k
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
print 4430091


  • 不快乐的托儿索
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
1e8放差点的oj跑不t我吃(
考虑分别构造左右半边,比如说跑10000000到99999999,就遍历0到9999,开个数组a记录每个数字的数位和,a[i]表示数位和为i的数字数量(注意第一位不能是0),然后再遍历一次记为数组b(这次第一位可以是0),然后遍历数组ab,答案为a[i]*b[i]的和


  • 香菜味包子
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
二位数:
用一个map统计0~9中每一个数出现的数字(都是1)
一共的数量是0*1((times(0)-1) * (times(0))) + 1*1 + 1*1 ... = 9
四位数的情况:
用map统计0+0~9+9的中,每一个数字出的次数(m),以及每一个数字中加法是0开头的次数(n),左右和是m的数量是(m-k) * m
。。。
k位数可以使用k-2位数的map
这样?


2025-08-14 01:09:30
广告
不感兴趣
开通SVIP免广告
  • 遂逸
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • 贴吧用户_JGA1tbN
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include <stdio.h>
int main() {
const long start = 10;
const long end = 100000000;
int count = 0;
for (long num = start; num <= end; num++) {
long temp = num;
int digits[8]; // 存储各位数字(低位在前)
int length = 0;
// 分解数字并计算位数
while (temp > 0 && length < 8) {
digits[length++] = temp % 10;
temp /= 10;
}
// 跳过奇数位数的情况
if (length % 2 != 0) continue;
// 计算前后两半的和
int half = length / 2;
int sum_front = 0, sum_back = 0;
for (int i = 0; i < half; i++) {
sum_back += digits[i]; // 后半部分(实际是数字的低位)
}
for (int i = half; i < length; i++) {
sum_front += digits[i]; // 前半部分(实际是数字的高位)
}
if (sum_front == sum_back) {
count++;
}
}
printf("幸运数字的数量为: %d\n", count);
return 0;
}为啥我算的是4430092


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 13回复贴,共1页
<<返回c语言吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示