| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2049 人关注过本帖
标题:求助:我用我的编译器做出来结果对,但是A不了,显示结果错误
只看楼主 加入收藏
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
收藏
得分:3 
恩恩  有点乱

不要不要的。。。
2015-07-30 10:02
我想当大神
Rank: 1
等 级:新手上路
帖 子:2
专家分:3
注 册:2015-7-29
收藏
得分:3 
各路朋友,我想问问那个,s=(int)((double)s/10-s/10)*10+0.5);这个不加0.5会有什么例外的情况导致出现错误,我觉得没有0.5同样能每次都得出最末尾不为0的数啊
2015-07-30 10:18
q215236213
Rank: 4
等 级:业余侠客
威 望:1
帖 子:148
专家分:276
注 册:2012-7-24
收藏
得分:3 
程序代码:
int GetVal(int a)
{
    int i = 0, s = 1;
    int temp = a;
    int wei = GetWei(a);
    while (1)
    {
        s = 1;
        for (i = 0; i < wei - 1; i++)
        {
            s = s * 10;
        }
        a = a % s;
        if (a == 0)
        {
            temp = temp / s;
            break;
        }
        else if (a > 0 && a < 10)
        {
            temp = a;
            break;
        }
        else
        {
            temp = a;
        }
        wei = GetWei(a);
    }
    return temp;
}
int GetWei(int a)
{
    int i = 1;
    int temp = a;
    while (temp = temp / 10)
    {
        i++;
    }
    return i;
}
int Fun(int a)
{
    if (a == 1)
        return 1;
     return  (a*Fun(a - 1));
}
int main()
{
    int result;
    int a;
    printf("请输入一个正整数:");
    while (scanf("%d",&a)!=1)
    {
        printf("输入的数字不是正整数,请重新输入一个正整数\n");
        getchar();
    }
    result = GetVal(Fun(a));
    printf("%d\n", result);
    return 0;
}


[ 本帖最后由 q215236213 于 2015-7-30 16:34 编辑 ]
2015-07-30 15:18
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:336
专家分:1135
注 册:2014-4-13
收藏
得分:0 
回复 19楼 rjsp
利用对阶乘质因数个数的计算,使得算法变得简明,省去了空间,速度也很快,学习了,非常感谢。
2015-07-30 22:36
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:336
专家分:1135
注 册:2014-4-13
收藏
得分:0 
回复 22楼 我想当大神
这是浮点数运算时常用的一种方法,主要是用在浮点向整数转化的时候,其目的是为了保证转化的一致性。c语言中浮点数在内存中的存储是一定精度范围内的近似值,如78.0可能是78.000012或77.999988,6.35可能是6.350000011或6.349999996,浮点数转化为整数时是截掉小数保留整数,这样在转换时就会产生不一致,例如上面的78.0就有78和77两种可能,现在我们给78.0加上一个精度值0.001,变成78.0+0.001,这样在转换时就只有78一种结果了。对于精度值的大小选择,是加是减,要根据具体情况而定。
2015-07-31 09:09
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
收藏
得分:0 
这个》》》》》》》


不要不要的。。。
2015-07-31 14:09
冷曦。
Rank: 2
来 自:苏州
等 级:论坛游民
帖 子:20
专家分:22
注 册:2015-7-27
收藏
得分:3 
程序代码:
#include<stdio.h>
int A( int n)
{
    int i;
    int s=1;
    if(n!=0)
    {
        for(i=1;i<=n;i++)
        {
            s*=i;
        }
        for(i=10;;i=i*10)
        {
            if(s%i!=0)
            {
                s/=i/10;
                break;
            }
        }
    }
    return s;
}
void main()
{
    int n;
    scanf("%d",&n);
    printf("%d\n",A(n));
}

毋伤他人、尽尔所欲~
2015-08-03 20:59
冷曦。
Rank: 2
来 自:苏州
等 级:论坛游民
帖 子:20
专家分:22
注 册:2015-7-27
收藏
得分:0 
程序代码:
#include<stdio.h>
int A( int n)
{
    int i;
    int s=1;
    if(n!=0)
    {
        for(i=1;i<=n;i++)
        {
            s*=i;
        }
        for(i=10;;i=i*10)
        {
            if(s%i!=0)
            {
                s/=i/10;
                break;
            }
        }
    }
    return s;
}
void main()
{
    int n;
    scanf("%d",&n);
    printf("%d\n",A(n));
}

0.0

毋伤他人、尽尔所欲~
2015-08-03 21:01
快速回复:求助:我用我的编译器做出来结果对,但是A不了,显示结果错误
数据加载中...
 
   



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

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