16、正整数序列 Q 中的每个元素都至少能被正整数 a 和 b 中的一个整除,现给定 a 和 b,
需要计算出 Q 中的前几项,例如,当 a=3,b=5,N=6 时,序列为 3,5,6,9,10,12
(1)、设计一个函数 void generate(int a,int b,int N ,int * Q )计算 Q 的前几项
(2)、设计测试数据来验证函数程序在各种输入下的正确性。
/* 16、正整数序列 Q 中的每个元素都至少能被正整数 a 和 b 中的一个整除,现给定 a 和 b, 需要计算出 Q 中的前几项,例如,当 a=3,b=5,N=6 时,序列为 3,5,6,9,10,12 (1)、设计一个函数 void generate(int a,int b,int N ,int * Q )计算 Q 的前几项 (2)、设计测试数据来验证函数程序在各种输入下的正确性。 */ #include<iostream> #include<stdio.h> using namespace std; void generate(int a,int b,int N ,int * Q )//计算 Q 的前N项 { if(a <= 0 || b <= 0 || N <= 0 || !Q) return; int A = 1; int B = 1; for(int i=0;i<N;++i) { if(A*a<B*b) { Q[i]=A*a; ++A; } else if(A*a>B*b) { Q[i]=B*b; ++B; } else { Q[i]=A*a; ++A; ++B; } } } void showArr(int Q[],int N) { for(int i=0;i<N;++i) printf("%d ",Q[i]); printf("\n"); } int main() { int a=3,b=5; int N=10; int *Q =new int[N]; generate(a,b,N,Q); showArr(Q,N); }