2012年机试 容易 略

//2012年机试 第一组是做的是输入一个字符串,统计其中的字母、数字、空格等
#include <stdio.h>
int main()
{
    int a,b,c,d,ch;
    a=b=c=d=0;//计数器初始化为0.
    while((ch=getchar())!='\n')//循环读取字符,到换行结束。
    {
        if(ch>='0' && ch<='9')//数字
            a++;
        else if((ch>='a' && ch<='z')||(ch>='A' && ch<='Z'))//字母
            b++;
        else if(ch==' ')//空格
            c++;
        else //其它
            d++;
    }
    printf("%d %d %d %d\n", a,b,c,d);//输出结果。
    return 0;
}













第二组做的是计算1!+2!+3!+...+n!。要求要高效并且求程序运算所耗时间。(高效的正确时间复杂度应为O(n))
自己:最好修改为long long 注意数据的取值范围
#include<stdio.h>
int main()
{int i,n;
    int m=1;
    int sum=0;
    printf("请输入n的值:");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        m=m*i;
        sum=sum+m;
    }
    printf("1!+2!+3!+...+n!的值=%d\n",sum);
    return 0;
}
递归版:

    public static void sum(int number) {
        int sum = 0;
        int temp = 0;
        for(int i=1; i<=number; i++) {
            temp = function2(i);
            sum += temp;
        }
        System.out.println(sum);
    }
    public static int function2(int number) {
        if(number == 1) {
            return 1;
        }else {
            return function2(number-1)*number;
        }
    }

其他类似难度的C语言整理:













全部评论

相关推荐

12-15 11:27
门头沟学院 Java
哇哇的菜鸡oc:所有人不要理会,就好了,后面他就知道怎么回事了,只能说有的时候市场都是被宰的人搞坏的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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