| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1021 人关注过本帖
标题:看得纠结
取消只看楼主 加入收藏
逆风而上
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-8-7
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:5 
看得纠结
请大侠加些注释,尽量详细,让新手看得懂;

#include <string.h>
#define MAXN 10000

int lastdigit(char* buf){
    const int mod[20]={1,1,2,6,4,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2};
    int len=strlen(buf),a[MAXN],i,c,ret=1;
    if (len==1)
        return mod[buf[0]-'0'];
    for (i=0;i<len;i++)
        a[i]=buf[len-1-i]-'0';
    for (;len;len-=!a[len-1]){
        ret=ret*mod[a[1]%2*10+a[0]]%5;
        for (c=0,i=len-1;i>=0;i--)
            c=c*10+a[i],a[i]=c/5,c%=5;
    }
    return ret+ret%2*5;
}
搜索更多相关主题的帖子: 纠结 
2010-08-07 22:20
逆风而上
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-8-7
收藏
得分:0 
这只是一个计算阶乘最后非零位的函数
2010-08-08 10:13
逆风而上
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-8-7
收藏
得分:0 
#include <stdio.h>
#include <string.h>
int main()
{
  int last(char* str);
    char str[10000];
    int temp;
    while(scanf("%s",str)!=EOF)
    {
       temp=last(str);
       printf("%d\n",temp);
    }
    return 0;
}
int last(char* str)
{
  int mod[20]={1,1,2,6,4,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2};
    int length=strlen(str),a[10000],i,c,ret=1;
    if (length==1)
        return mod[str[0]-'0'];
    for (i=0;i<length;i++)
        a[i]=str[length-1-i]-'0';
    for (;length;length-=!a[length-1])
    {
        ret=ret*mod[a[1]%2*10+a[0]]%5;
        for (c=0,i=length-1;i>=0;i--)
            c=c*10+a[i],a[i]=c/5,c%=5;
    }
    return ret+ret%2*5;
}
2010-08-08 10:38
逆风而上
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-8-7
收藏
得分:0 
高手快出来啦
2010-08-08 19:44
逆风而上
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-8-7
收藏
得分:0 
这是一个计算阶乘最后非零位,请大侠们研究研究吧
2010-08-08 20:14
逆风而上
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-8-7
收藏
得分:0 
谁会就冒一冒头吧
2010-08-09 08:01
快速回复:看得纠结
数据加载中...
 
   



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

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