可被数组中的任何数字整除的数字
Is a number divisible by any number in array
我正在尝试查看一个数字是否可以被数组中的任何给定数字整除。 我已经看到很多带有数字1 % number2 == 0答案的答案,但我还没有找到任何带有数字数组的答案,我宁愿自己不写出数组中的每个数字(那太辛苦了)。
所以这就是我试图弄清楚的。如您所见,目前唯一可行的方法是,如果我给出的最后一个数字为真,否则 else 语句将启动并将number1_result计算为 false。
int square_numbers[10] = { 4, 9, 25, 36, 49, 64, 81, 100, 121, 144 };
int number1;
bool number1_result;
cin >> number1;
for (int i = 0; i < 10; i++) {
if(number1 % square_numbers[i] == 0)
number1_result = true;
else
number1_result = false;
}
如何确保如果循环的计算结果为 true 一次,则为真。如果至少一次不为真,则为假。
如果您需要更多信息,请告诉我,谢谢!
一旦找到除数,就打破循环。并使用=
而不是==
进行分配。
正确的解决方案是——
int square_numbers[10] = { 4, 9, 25, 36, 49, 64, 81, 100, 121, 144 };
bool number1_result=false;
for (int i = 0; i < 10; i++) {
if(number1 % square_numbers[i] == 0) {
number1_result = true;
break;
}
}
你的代码的问题在于它会覆盖number_result即使它已经是真的。
考虑示例,number1=4
,square_number={2, 3}
在您的循环中,num_result
在第一次比较时会变得true
,但在下次与3
比较时会再次变得false
。
withstd
:
bool number1_result = std::any_of(std::begin(square_numbers),
std::end(square_numbers),
[&](auto e){ return number % e == 0; });
问题是您正在分配应该在循环内部检查number1_result
但您必须输入number1
:
cin >> number1_result; // redundant
答案是:
int square_numbers[10] = { 4, 9, 25, 36, 49, 64, 81, 100, 121, 144 };
bool number1_result = false;
int number1;
cin >> number1;
for (int i = 0; i < 10; i++) {
if(number1 % square_numbers[i] == 0){
number1_result = true;
break;
}
}
相关文章:
- std::stoi 的版本拒绝任何非数字
- 正则表达式以匹配数字的重复模式,后跟任何类型的分隔符?
- C++:创建1000次唯一的随机分布,在任何分布中都没有重复的数字
- 是否有任何内置函数可以检查给定的两个数字在给定整数数组中的顺序是否相同?
- 如何在C++中生成低于或高于某个数字的任何随机数?
- 如果否则错误:如何使其打印任何数字
- 该代码不会在其中显示任何数字输入.如何使它显示任何输入
- 用字母打印以 10-16 为基数(我被困在一个必须打印出任何数字的项目上)
- 如何为字符串编写正则表达式,其中包含一个数字至少一个数字,并且不包含任何字母
- 可被数组中的任何数字整除的数字
- 确定来自给定数字集的数字中的任何一个的最有效方法是零
- 为什么此代码只能识别文本文件中的第一行?输入任何大于 1 的数字都会返回"Atomic Number Not Found"
- 无符号函数,用于返回使用任何数字的数字
- 0x80020009 OLE异常访问除0以外的任何数字
- 我如何从CPP中的任何给定号码中的任何给定号码中获得第三位数字
- 我可以检查给定的数字是否可以是具有n个术语的任何算术进程的总和
- 像儒略数字用于计算日期一样,是否有任何特定的数字来计算时间
- 找到最大.任何给定数字的功率值小于另一个给定数字
- 测试一个数字是否具有小数值,而没有任何库
- 有没有办法检查(在控制台应用程序中)键盘上是否按下了 A-Z 和 1-9 的任何字母数字键