16、正整数序列Q中的每个元素都至少能被正整数a和b中的一个整除,现给定a和b, 需要计算出Q中的前几项
2012-09-07 20:23
344 查看
/************************************************************************/ /* * 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)、设计测试数据来验证函数程序在各种输入下的正确性。 */ /************************************************************************/ //1,2,3...从自然数中筛选,效率不高 //multipleA = 1,为a的倍数, multipleB = 1为b的倍数, //选择a*multipleA和b*multiple中小的作为下一个元素,multiple+1, 继续选择 void generate(int a, int b, int N, int * Q) { if(a <= 0 || b <= 0 || N <= 0 || !Q) return; int multipleA = 1; int multipleB = 1; //从小到大生成Q for(int i = 0; i < N; ++i) { if(multipleA * a < multipleB * b) { Q[i] = multipleA * a; ++multipleA; } else if(multipleA* a > multipleB * b) { Q[i] = multipleB * b; ++multipleB; } else { Q[i] = multipleA * a; ++multipleA; ++multipleB; } } } //(2),测试错误输入,正常输入检查正确性, //数组有序,且每个数字均是3或5的倍数且无遗漏 //从1,2,3,4,5,。。。中筛选放入Q中,两种方法比较结果 //略了..... void testOfgenerate() { int a = 3, b = 5; int N = 10; int * Q = new int ; generate(a, b, N, Q); showArr(Q, N); }
相关文章推荐
- 谷歌:正整数序列Q中的每个元素都至少能被正整数a和b中的一个整除,现给定a和b,需要计算出Q中的前几项
- 正整数序列Q中的每个元素都至少能被正整数a和b中的一个整除,现给定a和b,需要计算出Q中的前几项
- 面试题:正整数序列Q中的每个元素都至少能被正整数a和b中的一个整除,给定a和b,需要计算出Q中的前几项
- 正整数序列Q中的每个元素都至少能被正整数a和b中的一个整除,现给定a和b,如何生成Q中的前几项
- 116 Q中的每个元素都至少能被正整数a和b中的一个整除,计算Q 的前几项
- 有一个整数数组,请编写一个函数,找出索引m和n,只要将m和n之间的元素排好序,整个数组就是有序的。注意:n-m应该越小越好,也就是说,找出符合条件的最短序列。 给定一个int数组A和数组的大小n,请
- leetcode:给定一个整数数组,除了一个元素外,每个元素都会出现两次。找到那一个。
- 每天一道LeetCode-----一个整数序列,每个元素出现两次,只有一个(两个)出现一次,找到这个(这两个)元素
- 谷歌笔试题--给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数。
- 给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数。
- 给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数。
- 给定整数数组,除了一个元素之外,每个元素都出现三次。 找到那个只出现一次的数
- 给定一个正整数N,从1到N所有整数,计算出现1的个数
- 给定一个集合和一个正整数c,判定是否存在该集合的子集,使其所有元素的和等于给定的正整数c?
- 给定整数数组,除了一个元素之外,每个元素都会出现两次。 找到那个只出现一次的
- 谷歌笔试题--给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数。
- 写正确函数需要注意的地方:给定一个十进制整数N,计算从1开始到N的所有整数出现的“1”的个数
- 谷歌笔试题--给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数。
- 给定一个由整数组成二维矩阵(r*c),现在需要找出它的一个子矩阵,使得这个子矩阵内的所有元素之和最大,并把这个子矩阵称为最大子矩阵。
- 给定一个整数数组,两个数字的返回索引将它们加到一个特定的目标中。 您可以假设每个输入都只有一个解决方案,并且您可能不会两次使用相同的元素。