牛客网题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体验,而且还是一遍过哈哈哈哈哈哈哈

冒泡法的应用,然后排序,已经最后输出

这是不是贪心法呢,嘻嘻嘻嘻

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值