永发信息网

关于C语言的一个小问题~~

答案:2  悬赏:10  手机版
解决时间 2021-04-28 21:22
Description

ecchi上了一辆出租车,在他快要到达目的地时,却发现出租车的记费表有问题:当记费表的数字转到3的时候,下一个数字是5!他发现记费表的每一个位都有这种问题.例如,当里程表显示15339,记费表转动后,数字变为15350.这意味着他可能要付出更多的费用.他向司机反映了这一问题,但他们都无法算出实际上的费用是多少,你可以帮助他们吗?

Input

每一行有一个正整数M,1<=M<=999999999,记费表上显示的数字.若M为0,则输入结束(0不应该处理)

Output

对于每一个M,在单独一行中输出M,一个冒号':',一个空格,和实际上的费用.

Sample Input

13 15 2003 2005 239 250 1399 1500 999999 0

Sample Output

13: 12 15: 13 2003: 1461 2005: 1462 239: 197 250: 198 1399: 1052 1500: 1053 999999: 531440

这是我编的 程序 为什么到了14000多的时候就运行出错了?

#include<stdio.h>
int main()
{
long f(long);
long x;
for(scanf("%ld",&x);x!=0;scanf("%ld",&x))
printf("%ld: %ld\n",x,f(x));
return 0;
}
long f(long n)
{

if(n==3) return 3;
if(n%1000000000==400000000) return f(n-100000000);
if(n%100000000==40000000) return f(n-10000000);
if(n%10000000==4000000) return f(n-1000000);
if(n%1000000==400000) return f(n-100000);
if(n%100000==40000) return f(n-10000);
if(n%10000==4000) return f(n-1000);
if(n%1000==400) return f(n-100);
if(n%100==40) return f(n-10);
if(n%10==4) return f(n-1);


else return(f(n-1)+1);
}

PS:小弟是初学者,见笑啦

最佳答案

我把你的改了,算是重写了,用函数f()计算当前数应该减去的费用(就是需要多付的费用),x-f(x)就是应该付的费用:


#include<stdio.h>
#include<math.h>
int main()
{
long f(long);
long x,y;
int z;
for(scanf("%ld",&x);x!=0;scanf("%ld",&x)){
y=x;
while(y){
z=y%10;
if(z==4) {
printf("输入的数的各位上不能为4!\n");
return 0;
}
y/=10;
}
printf("%ld: %ld\n",x,x-f(x));
}
return 0;
}
long f(long n)
{
long m;
int i,j;
if(n<4) return 0;
if(n>4&&n<=9) return 1;
m=n;
i=0;
while(m>10){
m/=10;
i++;
}
j=n-m*(long)pow(10,i);
if(m>4) return (m-1)*f((long)pow(10,i)-1)+(long)pow(10,i)+f(j);
if(m<4) return m*f((long)pow(10,i)-1)+f(j);
}

全部回答

不是所有的路径都有返回值。。。遇到那样的数的时候··算死哈···例如说···1,2。。。

还有就是··这样的递归太**了。。迭代次数太多··死······

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有很多美女穿着的那套“绿色裙子带金色翅膀”
关于沈阳上高中的问题。。帮个忙。。
男人是不是都讨厌洗衣服之类的啊
上海静安区哪里好玩
电脑问题(急)
求今年年末贺岁档电影?都有那些?
怎样快速防治近视..@!~
我是1990年5月14想占卜今年内能找到自己喜欢
叶倩文祝福粤语下载,叶倩文的《祝福》 歌词
廊坊永清人在廊坊市碾子营住需要办理暂住证吗
电脑没声音。已经安装了驱动精灵但还是没声音
现在专卖邦威的鞋子有多大利润?
蓉蓉超市地址在什么地方,想过去办事
为什么用最真诚的心 却总是得不到最美好的结
我能和我心爱的女孩成为夫妻吗
推荐资讯
teacher(动词)____
毕业明信片寄语给同学,求 明信片的日文读音
穿越火线为什么现在 那么卡?
谁知道"你是爱他"的歌词?
是不是有些Only的新款网上不卖的啊?
带有杨万里的诗句,描写夏季秋季冬季的诗词
有道数学应用题,谁能帮帮忙啊
财务管理工作包括哪些方面
怎么才能点亮手机图标
怎样可以提高好友买卖身价?
程咬金什么属相
福建12月5号体彩36选7开什么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?