C语言 发工资
答案:2 悬赏:0 手机版
解决时间 2021-02-18 12:18
- 提问者网友:箛茗
- 2021-02-17 20:57
C语言 发工资
最佳答案
- 五星知识达人网友:神的生死簿
- 2021-02-17 21:37
你们学校OJ吧
代码:
#include
main()
{
int n, i, b, c, d, e, f, g;
long x;
while(scanf("%d",&n),n)
{ x=0;
long a[n];
for(i=0;i scanf("%ld",&a[i]);
for(i=0;i {
b=(c=(d=(e=(f=(g=0)))));
b=a[i]/100;
c=a[i]%100/50;
d=a[i]%100%50/10;
e=a[i]%100%50%10/5;
f=a[i]%100%50%10%5/2;
g=a[i]%100%50%10%5%2;
x=x+b+c+d+e+f+g;
}
printf("%ld
",x);
}
}绝对能AC 满意请采纳
追问还是没搞懂怎么算的……问问别人去……追答这道题是我以前做过的,运用了贪心的思想,要想使得张数最小,那么面值需要最大,比如,102元钱,最佳方案是1张100和1张2元,而不是2张50和1张2元或者1张100和2张1元。
那么每次都优先选用最大面值,若不能,再用小一点的面值,所以这样下来就能得到最优方案了。
代码:
#include
main()
{
int n, i, b, c, d, e, f, g;
long x;
while(scanf("%d",&n),n)
{ x=0;
long a[n];
for(i=0;i
for(i=0;i
b=(c=(d=(e=(f=(g=0)))));
b=a[i]/100;
c=a[i]%100/50;
d=a[i]%100%50/10;
e=a[i]%100%50%10/5;
f=a[i]%100%50%10%5/2;
g=a[i]%100%50%10%5%2;
x=x+b+c+d+e+f+g;
}
printf("%ld
",x);
}
}绝对能AC 满意请采纳
追问还是没搞懂怎么算的……问问别人去……追答这道题是我以前做过的,运用了贪心的思想,要想使得张数最小,那么面值需要最大,比如,102元钱,最佳方案是1张100和1张2元,而不是2张50和1张2元或者1张100和2张1元。
那么每次都优先选用最大面值,若不能,再用小一点的面值,所以这样下来就能得到最优方案了。
全部回答
- 1楼网友:荒野風
- 2021-02-17 23:00
从最大面额去扣减每个人的工资就好了!最后累加,可得追问没搞清楚什么意思……追答好吧
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯