我正在做一个 C++ 项目,遇到了一个让我感到困惑的问题。我要创建一个电话号码生成器,让用户输入前 4 个号码,然后生成遵循以下两条规则的所有可能的电话号码:最后 6 位数字必须等于 33。第 4 位和第 5 位数字不能都是偶数或两者奇怪。
到目前为止,这是我想出的:
#include <iostream>
using namespace std;
int main()
{//begin main
srand(time(0));
const int MAX_DIGITS = 10;
int num[MAX_DIGITS] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
cout<<"enter the first digit: ";
cin>>num[0];
cout<<"Enter the second digit: ";
cin>>num[1];
cout<<"Enter the third digit: ";
cin>>num[2];
cout<<"Enter the fourth digit: ";
cin>>num[3];
for (int e=0;e<MAX_DIGITS;e++)
{
for(int f=0;f<MAX_DIGITS;f++)
{
for(int g=0;g<MAX_DIGITS;g++)
{
for(int h=0;h<MAX_DIGITS;h++)
{
for(int i=0; i<MAX_DIGITS;i++)
{
for(int j=0;j<MAX_DIGITS;j++)
{
if ((num[e]+num[f]+num[g]+num[h]+num[i]+num[j]) == 33 && (num[3]%2 != 0 && num[4]%2 != 0) )
{
cout<<num[0]<<num[1]<<num[2]<<num[3]<<num[e]<<num[f]<<num[g]<<num[h]<<num[i]<<num[j]<<endl;
}
}
}
}
}
}
}
到目前为止,这一切对我来说都是有意义的,但是程序多次显示一些数字,我不完全确定如何理解偶数/奇数规则。
我仍然是编程的新手,我确信可能有更有效的方法来做到这一点,但我正在尽力而为,这让我感到困惑。任何帮助,将不胜感激。
提前致谢!
编辑:我的问题是,如何让生成器显示应用了偶数/奇数规则的数字?我最好的想法是使用模运算符 (%) 来查看除以 2 的余数是否为零,如果是,则这些数字是偶数。不过,这是我绊倒的地方,因为我不完全确定如何实现这一点。很抱歉第一次没有更具体。