首页 > 编程语言 >奥数与C++小学四年级(第十五题 希望数)

奥数与C++小学四年级(第十五题 希望数)

时间:2024-10-31 10:45:34浏览次数:3  
标签:digit temp int 四年级 number C++ sumOfDigits totalMatchsticks 奥数

参考程序代码:

#include <iostream>
#include <vector>

using namespace std;

// 每个数字所需的火柴棍数量
vector<int> matchsticks = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6};

// 函数来计算一个数的火柴棍总数和数字和
void checkHopeNumber(int number) {
    int totalMatchsticks = 0;
    int sumOfDigits = 0;

    int temp = number;
    while (temp > 0) {
        int digit = temp % 10;
        totalMatchsticks += matchsticks[digit];
        sumOfDigits += digit;
        temp /= 10;
    }

    if (totalMatchsticks == sumOfDigits) {
        cout << "找到希望数: " << number << endl;
    }
}

int main() {
    int maxHopeNumber = 0;

    // 从9999到1000遍历
    for (int i = 9999; i >= 1000; --i) {
        checkHopeNumber(i);
        // 更新最大希望数
        if (i == 9960) {
            maxHopeNumber = i;
            break; // 找到最大希望数,退出循环
        }
    }

    cout << "最大的四位希望数是: " << maxHopeNumber << endl;
    return 0;
}

标签:digit,temp,int,四年级,number,C++,sumOfDigits,totalMatchsticks,奥数
From: https://blog.csdn.net/weixin_60445850/article/details/143384701

相关文章

  • ​Leetcode 166.珠宝的最高价值​ 网格图dp C++实现
    问题:Leetcode166.珠宝的最高价值现有一个记作二维矩阵 frame 的珠宝架,其中 frame[i][j] 为该位置珠宝的价值。拿取珠宝的规则为:只能从架子的左上角开始拿珠宝每次可以移动到右侧或下侧的相邻位置到达珠宝架子的右下角时,停止拿取注意:珠宝的价值都是大于0的。除非这个......
  • c++ string 识别标志位并解析标志位后面的字符
    解析字符串中的固定标志位正则表达式和iterator的配合应用#include<string>#include<map>#include<regex>#include<iostream>//替换\\M+后面的字符//\\M+195B6替换为文std::regexpattern(R"(\\M+[^\\M]*)");//匹配\\M+后跟任意非\\M的字符(0次或多次)......
  • C++多线程应用
    一个进程就是一个程序,一个程序里不止一个功能,每个功能的实现就可以交给一个线程去完成。一个进程就像是一个工程,这个工程里,有设计,有监理,有施工,就相当于三个线程,各干各的又相互配合。https://cplusplus.com/reference/thread/thread/thread/是C++的官方参考,个人觉得比较权威,比经......
  • C++ 模板专题 - 标签分派(Tag Dispatching)
    一:概述:        在C++中,TagDispatching是一种编程技巧,主要用于在编译期根据不同的类型或特征选择不同的函数重载或代码分支。TagDispatching借助类型标签(tags)进行函数调度,用于在模板中实现编译期的静态分派。这种方法特别适合在泛型编程中根据类型特性(如迭代器......
  • C++:二叉搜索树(迭代)
    文章目录前言一、二叉搜索树1.二叉搜索树的概念2.二叉搜索树的操作1)遍历2)查找3)插入4)删除二、二叉搜索树的实现(迭代版本)1.二叉搜索树的结构定义2.二叉搜索树的插入3.二叉搜索树遍历4.二叉搜索树删除5.二叉搜索树查找6.二叉搜索树代码总结总结前言今天来学......
  • 深入理解 C/C++ 中的 do-while 语句及其应用
    在C/C++编程中,do-while语句是一个重要的控制结构。它的独特之处在于,无论条件是否满足,循环体至少会执行一次。尽管do-while的基本用途是循环,但它在其他编程场合中同样具有非常巧妙和实用的应用。本文将探讨do-while语句的基本用法及其在宏定义和函数中的应用,提供高效......
  • 【信奥赛·算法基础】插入排序:算法解析与C++实现
    序言插入排序(InsertionSort)是一种简单的排序算法,就像是我们在打扑克牌时,整理手中牌的过程。一、基本原理插入排序的基本思想是:将待排序的元素插入到已经有序的部分序列中合适的位置,直到所有元素都插入完毕,整个序列就变为有序序列。二、算法步骤从第二个元素开始(假设第......
  • 【C++】踏上C++学习之旅(四):细说“内联函数“的那些事
    文章目录前言1."内联函数"被创造出来的意义2.内联函数的概念2.1内联函数在代码中的体现2.2普通函数和内联函数的汇编代码3.内联函数的特性(重点)4.总结前言本章来聊一聊C++的创作者"本贾尼"大佬,为什么要创作出内联函数,以及内联函数的定义和内联函数的实现机制等......
  • [C++] 成员函数指针和函数指针
    #include<iostream>usingnamespacestd;classA{public:A(inta):_a(a){}int_a;void*get_ptr(){returnthis;};voidp(intc){cout<<"_a:"<<_a<<endl;};};intint_func(inta,floatb){......
  • 【2024华为OD-E卷-200分-任务最优调度】(题目+思路+Java&C++&Python解析+在线测试)
    在线评测链接题目内容给定一个正整数数组表示待系统执行的任务列表,数组的每一个元素代表一个任务,元素的值表示该任务的类型。请计算执行完所有任务所需的最短时间。任务执行规则如下:任务可以按任意顺序执行,且每个任务执行耗时间均为111个时间单位两个同类型的......