求解n个数字的最小公倍数
对于n个数字,可以先将这一串数字的初始值用数组存起来,然后复制一个数组。对于n个数字,每次找到最小的数,将最小的数字加上它的初始值,循环以上,直到所有的数字相等,就拿到了最小公倍数。
判断所有数字相等的方法
- 找出最大数与最小数,判断是否相等
- 定义一个用于判断的变量,其初始值设为零。然后循环中判断相邻数之间是否相等,相等则将用于判断的变量加一,不等则跳出循环。最后判断用于判断的变量的值是否满足n-1;
- 将数字排序后判断首和尾是否相等;
示例代码(c++)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
using namespace std; int main() { int n; int num[10001]; int num_copy[10001]; cin>>n; for(int i=0;i<n;i++){ cin>>num[i]; num_copy[i]=num[i]; } int min=num[0]; int k=0; int judge =0; while(1){ judge=0; k=0; min=num[0]; for(int i=0;i<n-1;i++){ if(num[i]==num[i+1]){ judge++; } else{ break; } } if(judge==n-1){ cout<<num[0]; break; } else{ for(int i=1;i<n;i++){ if(num[i]<min){ min=num[i]; k=i; } } num[k]+=num_copy[k]; } } return 0; }
|
参考
不用除法,如何求解n个数的最小公倍数