FOJ 1773 Discount

http://acm.fzu.edu.cn/problem.php?pid=1773

 

题目大意:买礼物时会有折扣,现在给你一个价格和他的折扣,得出打折后的价格,如果价格中包含有8这个数字,价格就OK。否则就要一直加钱,知道有8出现为止。如果打折后价格有小数位,则进一位再进行判断。

 

解题思路:用到sprintf函数把数字转换进数组中去,然后判断数组中每个元素是否有8的,有就输出结果就是了。

 

#include <stdio.h> #include <math.h> #include <string.h> int main() { int NumOfTest; char num[100]; double price; float rate; int k; int clen; register int i; while (scanf("%d",&NumOfTest)!=EOF) { for (i=0;i<NumOfTest;i++) { scanf("%lf%f",&price,&rate); rate = (100-rate)/100; price = price*rate; k=ceil(price); memset(num,'0',sizeof(num)); sprintf(num,"%d",k); clen = strlen(num); while (1) { if (num[0]=='8'||num[1]=='8'||num[2]=='8') { printf("%s/n",num); break; } else { k++; sprintf(num,"%d",k); } } } } return 0; }

你可能感兴趣的:(FOJ 1773 Discount)