Solution_t 2021-08-13 16:34 采纳率: 0%
浏览 68

蓝桥杯问题,请求指导,不知哪儿错了?

蓝桥杯
问题描述   123321是一个非常特殊的数,它从左边读和从右边读是一样的。  
 输入 一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。然后下面的代码输入n很多是对的,n输入36时是错的,求解,或者有不有更好的方法,敬请赐教!

#include<math.h>
using namespace std;
int main()
{
    int n, i, j,t=0,k=0,u=0;
    int a[10] = { 0 }, b[100] = { 0 }, c[1000] = { 0 };
    cin >> n;
        for (j = 10; j < 100; j++)//先找五位数,左两位和右两位数字一样,所以遍历10到99;
    for (i = 0; i < 10; i++)
        {
            int x1, x2;
            x1 = j % 10;//存个位数
            x2 = j / 10;//存十位数啊
            if (i + 2 * (x1 + x2) == n)
            {
                b[k++] = j;//存五位数的前两位
                a[t++] = i;//存五位数的第三位
            }
        }
    for (i = 100; i < 1000; i++)//左三位和右三位一样,遍历100到1000
    {
        int x3, x4, x5;
        x3 = i % 10;//个位
        x4 = i / 10 % 10;//十位
        x5 = i / 100;//百位
        if ((x3 + x4 + x5) * 2 == n)
            c[u++] = i;//存六位数前三位
    }
    for (i = 0; b[i] && i < 100; i++)
        cout << b[i] << a[i] << b[i]%10 <<b[i]/10<< endl;//将两位数分解倒置
    for (i = 0; c[i] && i < 1000; i++)
        cout << c[i] <<c[i]%10<<c[i]/10%10<<c[i]/100<< endl;
    return 0;
    
}


  • 写回答

3条回答 默认 最新

  • CSDN专家-Time 2021-08-13 16:37
    关注

    你用暴力列举阿...
    首先轴对称.
    那你只要求左边的部分就好啦。撑死3个for循环。

    #include <stdio.h>
    int main(){
        // 第一位数字 首位不为0
        for(int i =1;i<=9;i++)
            // 第二位数字
            for(int j = 0;j<=9;j++)
                // 第三位数字
                for(int k = 0;k<=9;k++)
                {
                    // 如果 i+j+k+i+j
                    // 或者 i+j+k+k+j+i
                    // 等于你的输入的数字
                    // 直接打印。
                }
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 8月13日

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据