最小左材料

鋼管の長さが短い期待成長NCMの69センチメートル及び39センチメートル2つのサイズに切断した接続。最小限に予想以上を削減する方法を少なくとも短期飼料、の各カットのこれら2つの仕様の前提の下で?
もしN <108センチメートル、出力「エラー」。

入力:
369
出力:
。3. 4. 6 // 3の69センチメートル、4は、以上の材料39センチメートル長さが6センチ。

#include <stdio.h>
#include <stdlib.h>
const int MAXN = 100;
int c,rest,a[MAXN],minrest,a39,a69; 
void input_data()
{
    scanf("%d",&c);
    if (c < 108) 
        {
            printf("error");
            exit(0);
        }
    rest = c - 108; 
    minrest = rest;
    a[39] = 1;a[69] = 1; 
    a39 = 1;a69 = 1;
}
void sear_ch(int t)
{
    a[t]++;
    rest-=t;
    if (rest < minrest)
        {
            minrest = rest;
            a39 = a[39];a69 = a[69];
        }
    if (rest >= 69) 
        sear_ch(69);
    if (rest >=39)
        sear_ch(39);
    rest+=t; 
    a[t]--;
}
void get_ans() 
{
    if (rest >= 69)
        sear_ch(69);
    if (rest >=39)
        sear_ch(39);
}
void output_ans()
{
    printf("%d\n",a69);
    printf("%d\n",a39);
    printf("%d\n",minrest);
}
int main()
{
    input_data();
    get_ans();
    output_ans();
    return 0;
}
公開された102元の記事 ウォン称賛93 ビュー4967

おすすめ

転載: blog.csdn.net/huangziguang/article/details/104722611