参考程序代码:
#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