本文共 877 字,大约阅读时间需要 2 分钟。
Description
A公司的电脑管理系统受到了千年虫病毒的攻击,A公司因此丢失了向MS公司做年终汇报的数据。
A公司目前掌握的数据是MS公司每次公布的公司盈亏报表,而MS公司公布盈亏的方式与众不同,它每次都是将连续5个月的盈或亏得总和做一次性的公布,因此A公司不知道每个月具体的盈亏状况。已知的情况是所有盈利月盈利固定为s,而亏损月亏损固定为d。
写一个程序,确定MS公司是否盈利,若盈利的话,那么可能的盈利最大值是多少。
Input
输入为两个正整数s和d。Output
对于每一组的输入数据,若盈利的话,那么输出可能的盈利最大值是多少;若亏损的话,输出Deficit。Sample Input
59 237
375 743 200000 849694 2500000 8000000
Sample Output
116
28 300612 Deficit
算法分析:
1.对于输入的两个值,要分析在连续的5个月里面,最多能有几个月盈利后该阶段盈利;这样就能判断一年里最多有几个月是盈利的;
2.一年共12个月,对于前十个月的处理可以按照上面的来,对于剩下的两个月只能按照最理想状态来分析。
代码:
#include<stdio.h>
#include<stdlib.h> int main() { int s,d; while(scanf("%d%d",&s,&d)!=EOF) { int i,sum; for(i=0; i<5; i++) if( s*(5-i) - d*i < 0) break;//如果有四个月亏损,则在考虑剩下的月份时另算
if(i==4) sum = 3*s - 9*d; else //默认剩下的两个月是盈利的 sum = s*(12-2*i) - d*2*i; //如果每个月都亏损或者计算一年的利润亏损则输出亏损 if( i==5 || sum<0 ) printf("Deficit/n"); else printf("%d/n",sum); } system("pause"); return 0; }转载地址:http://fwhbi.baihongyu.com/