天天看點

牛客網題1 體驗

#include<stdio.h>
#include<string.h>
int main()
{
    int sum,num;
    int i,m,n,j,haha;
    double temp;
    int an[1000];
    int bn[1000];
    double cn[1000];
    int panduan;
     double jishu,dada;
     panduan=jishu=dada=0;
    scanf("%d%d",&sum,&num);
    for(i=0;i<sum;i++)
    {
        scanf("%d",&m);
        an[i]=m;
    }
    for(i=0;i<sum;i++)
    {
        scanf("%d",&n);
        bn[i]=n;
    }
    for(i=0;i<sum;i++)
    {
        cn[i]=(double)bn[i]/(double)an[i];
    }
    for(i=1;i<sum;i++)
        for(j=0;j<sum-1;j++)
    {
        if(cn[j]<cn[j+1])
        {
            temp=cn[j];cn[j]=cn[j+1];cn[j+1]=temp;
            haha=an[j];an[j]=an[j+1];an[j+1]=haha;
            haha=bn[j];bn[j]=bn[j+1];bn[j+1]=haha;
        }
    }
     /*for(i=0;i<sum;i++)
     {
         printf("%d  %d %lf",an[i],bn[i],cn[i]);   //測試時候的輸出,判斷冒泡成功與否
         printf("\n");
     }*/

     for(i=0;i<sum;i++)
     {
         panduan=panduan+an[i];
         if(num>panduan)jishu=jishu+(double)bn[i];
         else {panduan=panduan-an[i];dada=cn[i]*(num-panduan);jishu=jishu+dada;break;}
     }
     printf("%.2lf",jishu);
    return 0;
}
           

牛客網 月餅題https://www.nowcoder.com/pat/6/problem/4047、

記一次很複雜的題的AC體驗,而且還是一遍過哈哈哈哈哈哈哈

冒泡法的應用,然後排序,已經最後輸出

這是不是貪心法呢,嘻嘻嘻嘻

AA