| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2049 人关注过本帖
标题:求助:我用我的编译器做出来结果对,但是A不了,显示结果错误
只看楼主 加入收藏
ys344517874
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2015-7-26
结帖率:0
收藏
已结贴  问题点数:20 回复次数:27 
求助:我用我的编译器做出来结果对,但是A不了,显示结果错误
你的任务是找到阶乘最后面的非零位。

举个例子,5!=12345=120所以5!的最后面的非零位是2,7!=1234567=5040,所以最后面的非零位是4。

输入格式

共一行,一个整数不大于4,220的整数N。

输出格式:

共一行,输出N!最后面的非零位。





     空间限制:65536KB

     时间限制:1000ms


样例输入


7




样例输出


4
搜索更多相关主题的帖子: 编译器 空间 
2015-07-26 20:44
ys344517874
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2015-7-26
收藏
得分:0 
这是代码

#include<stdio.h>
int A( int n)
{
    int i;
    long s=1;
    if(n!=0){
    for(i=1;i<=n;i++)
    {
        s=s*i;        
        while(s%10==0){s=s/10;}
        s=(int)(((double)(s)/10-s/10)*10+0.5);
    }
    }
    return s;
}
int main()
{
    int i,n;
    scanf("%d",&n);
    printf("%d\n",A(n));
    return 0;
}
2015-07-26 20:45
ys344517874
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2015-7-26
收藏
得分:0 
这是代码

#include<stdio.h>
int A( int n)
{
    int i;
    long s=1;
    if(n!=0){
    for(i=1;i<=n;i++)
    {
        s=s*i;        
        while(s%10==0){s=s/10;}
        s=(int)(((double)(s)/10-s/10)*10+0.5);
    }
    }
    return s;
}
int main()
{
    int i,n;
    scanf("%d",&n);
    printf("%d\n",A(n));
    return 0;
}
2015-07-26 20:45
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:3 
你这个可能效率太低超时了

一片落叶掉进了回忆的流年。
2015-07-26 21:00
ys344517874
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2015-7-26
收藏
得分:0 
回复 4楼 诸葛欧阳
好像不是。。 它不A我  说我运行结果错误
2015-07-26 21:04
ys344517874
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2015-7-26
收藏
得分:0 
回复 4楼 诸葛欧阳
时限是1000ms呀  应该不可能超时吧
2015-07-26 21:06
yx1998
Rank: 2
等 级:论坛游民
威 望:1
帖 子:30
专家分:35
注 册:2015-7-24
收藏
得分:3 
是这样的。
c的程序编写顺序是:
函数原型,
main函数,
函数定义。所以正确的顺序应该是这样的:
#include<stdio.h>
int A( int );
int main()
{
    int i,n;
    scanf("%d",&n);
    printf("%d\n",A(n));
    return 0;
}
int A( int n)
{
    int i;
    long s=1;
    if(n!=0){
    for(i=1;i<=n;i++)
    {
        s=s*i;        
        while(s%10==0){s=s/10;}
        s=(int)(((double)(s)/10-s/10)*10+0.5);
    }
    }
    return s;
}

你的代码没有问题,可以运行。

静心学习,远离浮躁。
2015-07-26 21:09
ys344517874
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2015-7-26
收藏
得分:0 
回复 7楼 yx1998
不是在main前面定义的函数不用声明么。。

我那个代码我用vc 6.0编译成功的  而且到9999都测试成功的

换了顺序也A不了呀
2015-07-26 21:13
yx1998
Rank: 2
等 级:论坛游民
威 望:1
帖 子:30
专家分:35
注 册:2015-7-24
收藏
得分:0 
。。。

[ 本帖最后由 yx1998 于 2015-7-26 21:17 编辑 ]

静心学习,远离浮躁。
2015-07-26 21:15
yx1998
Rank: 2
等 级:论坛游民
威 望:1
帖 子:30
专家分:35
注 册:2015-7-24
收藏
得分:0 
什么叫做A不了?不能编译吗?我用我的编译器是可以正常运行的。

静心学习,远离浮躁。
2015-07-26 21:16
快速回复:求助:我用我的编译器做出来结果对,但是A不了,显示结果错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018400 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved