我对C ++知之甚少。我有一个分配来创建一个代码来确定任何用户输入数字的GCF。 参见随附的图片
以下是我正在考虑如何解决这个问题。如流程图所示。对于我,这说得通。但我可能错了。所以请告诉我它是否有意义。
我在编码中遇到的一个问题是,我无法通过它来编写数组"长度"取决于特定数量的因素有多少。
在我看来,好像人们可能误解了我在原帖中的意图。我想要帮助,而不是答案。我已经尽最大努力编写了代码(希望它能展示我在C ++中的知识,或者缺乏它)。 //中的所有内容都意味着它是我要输入的代码,但我输入时遇到了问题。非常感谢任何帮助。
答案 0 :(得分:1)
试试这个:
#include <iostream>
#include <vector>
std::vector<int> findFactors(int n){
std::vector<int> factorVect;
for (int i =0; i<=n;i++){
if (n%i==0){
factorVect.push_back(i);
}
}
return factorVect;
}
int main()
{
int n;
std::cout<<"Enter n";
std::cin>>n;
int m;
std::cout<<"Enter m";
std::cin>>m;
std::vector<int> nfactors=findFactors(n);
std::vector<int> mfactors=findFactors(m);
std::vector<int> gcdfactors;
int gcd=1;
//get factor intersection of nfactors and mfactors, and store in gcdfactors
for(int i=0;i<=gcdfactors.size();i++){
gcd*=gcdfactors[i];
}
std::cout<<gcd;
return 0;
}
你可以弄清楚如何自己获得两组的交集。我希望这有帮助!
答案 1 :(得分:0)
int gcd(int a, int b)
{
return b == 0 ? a : gcd(b, a % b);
}