锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
#include <cmath>
#include <iomanip>
using namespace std;
struct point
{
double x;
double y;
};
//姹傚杈瑰艦鐨勯噸蹇冪畻娉?br>//璇存槑:
//姹傚杈瑰艦閲嶅績騫朵笉鏄畝鍗曠殑鎶婃眰涓夎褰㈢殑閲嶅績鍏紡鎺ㄥ箍灝辮浜?br>//鎴戠殑綆楁硶鏄湪騫抽潰涓婂彇涓鐐?涓鑸彇鍘熺偣, 榪欐牱鍙互鍑忓皯寰堝璁$畻, 鑰屼笖浣挎濊礬鏇存竻鏅癪_^)
//榪欐牱灝卞緱鍒頒簡N涓笁瑙掑艦OP[i]P[i+1](鍏朵腑鐐圭殑欏哄簭瑕佷負閫嗘椂閽堢殑),
//鍒嗗埆姹傚嚭榪橬涓笁瑙掑艦鐨勯噸蹇僀i鍜岄潰縐疉i(娉ㄦ剰姝ゅ闈㈢Н鏄張鍚戦潰縐? 灝辨槸鐢ㄥ弶涔樻眰闈㈢Н鏃朵繚鐣欏叾姝h礋鍙?
//鍦ㄦ眰鍑篈 = A1+A2+...+AN(鍚屾牱淇濈暀姝h礋鍙風殑浠f暟鐩稿姞)
//鏈緇堥噸蹇僀 = sigma(Ai+Ci)/A;
point gravity(point *p, int n)
{
double area = 0;
point center;
center.x = 0;
center.y = 0;
for (int i = 0; i < n-1; i++)
{
area += (p[i].x*p[i+1].y - p[i+1].x*p[i].y)/2;
center.x += (p[i].x*p[i+1].y - p[i+1].x*p[i].y) * (p[i].x + p[i+1].x);
center.y += (p[i].x*p[i+1].y - p[i+1].x*p[i].y) * (p[i].y + p[i+1].y);
}
area += (p[n-1].x*p[0].y - p[0].x*p[n-1].y)/2;
center.x += (p[n-1].x*p[0].y - p[0].x*p[n-1].y) * (p[n-1].x + p[0].x);
center.y += (p[n-1].x*p[0].y - p[0].x*p[n-1].y) * (p[n-1].y + p[0].y);
center.x /= 6*area;
center.y /= 6*area;
return center;
}
#include <iostream>
#include <cmath>
using namespace std;
int gcd(int a, int b);
int ngcd(int *a, int n);
int lcm(int a, int b);
int nlcm(int *a, int n);
int main()
{
//int a,b;
//cin >> a >> b;
//cout << lcm(a, b) << endl;
int *a = new int[3];
a[0] = 3;
a[1] = 4;
a[2] = 5;
cout << nlcm(a, 3) << endl;
return 0;
}
//涓や釜鏁扮殑鏈澶у叕綰︽暟--嬈у嚑閲屽緱綆楁硶
int gcd(int a, int b)
{
if (a < b)
swap(a, b);
if (b == 0)
return a;
else
return gcd(b, a%b);
}
//n涓暟鐨勬渶澶у叕綰︽暟綆楁硶
//璇存槑:
//鎶妌涓暟淇濆瓨涓轟竴涓暟緇?br>//鍙傛暟涓烘暟緇勭殑鎸囬拡鍜屾暟緇勭殑澶у皬(闇瑕佽綆楃殑鏁扮殑涓暟)
//鐒跺悗鍏堟眰鍑篻cd(a[0],a[1]), 鐒跺悗灝嗘墍姹傜殑gcd涓庢暟緇勭殑涓嬩竴涓厓绱犱綔涓篻cd鐨勫弬鏁扮戶緇眰gcd
//榪欐牱灝變駭鐢熶竴涓掑綊鐨勬眰ngcd鐨勭畻娉?br>int ngcd(int *a, int n)
{
if (n == 1)
return *a;
return gcd(a[n-1], ngcd(a, n-1));
}
//涓や釜鏁扮殑鏈灝忓叕鍊嶆暟(lcm)綆楁硶
//lcm(a, b) = a*b/gcd(a, b)
int lcm(int a, int b)
{
return a*b/gcd(a, b);
}
//n涓暟鐨勬渶灝忓叕鍊嶆暟綆楁硶
//綆楁硶榪囩▼鍜宯涓暟鐨勬渶澶у叕綰︽暟姹傛硶綾諱技
//姹傚嚭澶翠袱涓殑鏈灝忓叕鍊嶆暟,鍐嶅皢嬈哄拰澶т笁涓暟姹傛渶灝忓叕鍊嶆暟鐩村埌鏁扮粍鏈熬
//榪欐牱浜х敓涓涓掑綊鐨勬眰nlcm鐨勭畻娉?br>int nlcm(int *a, int n)
{
if (n == 1)
return *a;
else
return lcm(a[n-1], nlcm(a, n-1));
}