第一个网上方法多的是,先用递归或者循环求两个数a,b的最大公因数,然后用a*b/最大公因数就行
第二个省事的话用vector<int>去写,用while(cin>>num) {if(num==0) break;else push_back......};,在循环同时统计sum和其他数据
网上可能有关于最小公倍数更优的算法,建议百度
#include <iostream> using namespace std; int gcd(int a,int b); int lcm(int a,int b); int main( void ) { unsigned a, b; if( !(cin>>a>>b) ) return 1; cout << lcm(a,b) << endl; } int gcd(int num1,int num2) { if(num1%num2==0) return num2; else return gcd(num2,num1%num2); } int lcm(int a,int b) { int temp_lcm; temp_lcm=a*b/gcd(a,b);//最小公倍数等于两数之积除以最大公约数 return temp_lcm; }