题解 | #N的阶乘#

N的阶乘

https://www.nowcoder.com/practice/f54d8e6de61e4efb8cce3eebfd0e0daa

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define len 2000

char res[len];

int chartoint(char c){
    int a = c-'0';
    if(a>=0&&a<=9){
        return a;
    }
    return -1;
}

char inttochar(int a){
    return a+'0';
}

void multipy(int x){
    int jin = 0;
    int n = strlen(res);
    //printf("%c\n",res[0]);
    int i;
    for(i = 0;i<n;i++){
        int temp = chartoint(res[i])*x+jin;
        jin = temp/10;
        res[i] = inttochar(temp%10);
        //printf("temp = %d\n",temp);
    }
    while(jin!=0){
        res[i] = inttochar(jin%10);
        jin/=10;
        i++;
    }
    res[i] = '\0';
    //printf("i = %d res = %s\n",i,res);
}

int main(){
    int n;
    while(scanf("%d",&n)!=EOF){
        res[0] = '1';
        res[1] = '\0';
        for(int i = 1;i<=n;i++){
            multipy(i);
            //printf("%s\n",res);
        }
        int n = strlen(res);
        for(int i = n-1;i>=0;i--){
            printf("%c",res[i]);
        }
        printf("\n");
    }
}

全部评论

相关推荐

05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务