如何将这行Python转换为C++;?
抱歉,如果这是一个有点简单的问题,但我真的很难将Python程序的最后一行代码转换为C++ 代码行是:如何将这行Python转换为C++;?,python,c++,Python,C++,抱歉,如果这是一个有点简单的问题,但我真的很难将Python程序的最后一行代码转换为C++ 代码行是: if all(x % k == 0 for k in range(1, 21)) 这基本上是为了检查X是否可以被所有的数字1-20整除 有人知道我如何转换这个吗 编辑:程序周围的一些上下文: x = 0 while(x != -1): x = x + 20 if all(x % k == 0 for k in range(1, 21)):
if all(x % k == 0 for k in range(1, 21))
这基本上是为了检查X是否可以被所有的数字1-20整除
有人知道我如何转换这个吗
编辑:程序周围的一些上下文:
x = 0
while(x != -1):
x = x + 20
if all(x % k == 0 for k in range(1, 21)):
print(x)
return 0
一种简单的方法是实现编写自己的循环:
bool test_something(int x)
{
for (int i = 1; i < 21; ++i)
{
if (x % i != 0) return false;
}
return true;
}
bool测试(int x)
{
对于(int i=1;i<21;++i)
{
如果(x%i!=0)返回false;
}
返回true;
}
一个简单的方法是实现编写自己的循环:
bool test_something(int x)
{
for (int i = 1; i < 21; ++i)
{
if (x % i != 0) return false;
}
return true;
}
bool测试(int x)
{
对于(int i=1;i<21;++i)
{
如果(x%i!=0)返回false;
}
返回true;
}
类似这样的事情可能:
#include <algorithm>
#include <numeric>
#include <vector>
#include <iostream>
int main()
{
int x = 10; // or whatever...
// create vector of 20 ints
std::vector<int> range(20);
// fill vector with increasing numbers, starting at 1
std::iota(range.begin(), range.end(), 1);
// do the testing
bool result = std::all_of(range.begin(), range.end(), [x] (int k) { return x % k == 0; });
std::cout << result << std::endl;
}
#包括
#包括
#包括
#包括
int main()
{
int x=10;//或者其他什么。。。
//创建20整数的向量
std::矢量范围(20);
//用递增的数字填充向量,从1开始
标准::物联网(range.begin(),range.end(),1);
//做测试
bool result=std::all_of(range.begin(),range.end(),[x](int k){return x%k==0;});
std::cout像这样的东西也许:
#include <algorithm>
#include <numeric>
#include <vector>
#include <iostream>
int main()
{
int x = 10; // or whatever...
// create vector of 20 ints
std::vector<int> range(20);
// fill vector with increasing numbers, starting at 1
std::iota(range.begin(), range.end(), 1);
// do the testing
bool result = std::all_of(range.begin(), range.end(), [x] (int k) { return x % k == 0; });
std::cout << result << std::endl;
}
#包括
#包括
#包括
#包括
int main()
{
int x=10;//或者其他什么。。。
//创建20整数的向量
std::矢量范围(20);
//用递增的数字填充向量,从1开始
标准::物联网(range.begin(),range.end(),1);
//做测试
bool result=std::all_of(range.begin(),range.end(),[x](int k){return x%k==0;});
标准::cout
使用python检查:
In [1]: x = 2327925600
In [2]: all(x % k == 0 for k in range(1, 21))
Out[3]: True
使用python检查:
In [1]: x = 2327925600
In [2]: all(x % k == 0 for k in range(1, 21))
Out[3]: True
可能的重复:好吧,你可以把它转换成一个操作:如果x%232792560==0
(232792560是[1..20]的最小公倍数)。谷歌算法都会给你可能的重复:好吧,你可以把它转换成一个操作:如果x%232792560==0
(232792560是[1..20]的最小公倍数).Google算法给你的都是更接近python在幕后真正做的事情,但效率很低。与下面的错误相同。我认为…21应该被排除。@juanchopanza为什么它会“低效”?@Rapptz它是在不需要向量的情况下创建向量。这样做并不会使代码更容易理解或维护。这更接近python的实际功能,但效率很低。与下面的错误相同。我认为……21应该被排除。@juanchopanza为什么它会“低效”?@Rapptz它是在不需要矢量的情况下创建矢量。这样做并不会使代码更容易理解或维护。