スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

いくつかの棒の中から3本を選んでできるだけ周長が長い三角形を作る

2,3,4,5,10の中から3本を選んで、3辺の和ができるだけ大きい三角形を作り、その周長を返却するプログラム。
三角形が成り立つとき、
最も長い辺の長さ<残りの二辺の長さの和
という法則性がある。

7 int main(void){
8
9 int ret;
10 int array[N] = {2,3,4,5,10};
11
12 ret = solve(N, array);
13 printf("ret = %d\n", ret);
14
15 return 0;
16 }
17 int solve(int n, int array[]){
18 int i,j,k,answer,len, ma, rest;
19 for(i=0; i 20 for(j=i+1; j 21 for(k=j+1; k 22 len=array[i]+array[j]+array[k];//length
23 ma = max(array[i],max(array[j],array[k]));//longest
24 rest = len - ma;//rest
25
26 if(ma < rest)//三角形が作れる
27 answer = max(len,answer);//renew answer
28
29 }
30
31 }
32
33 }
34
35 return answer;
36 }
37
38 int max(int num1, int num2){
39 int max = (num1>num2)?num1:num2;
40 return max;
41 }

スポンサーサイト
プロフィール

tjnet777

Author:tjnet777
Solaris, VPNのサポート業務を1年

金融系SIerで業務アプリの開発、メンテを3年半

離職して大学院大学 1年生

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。