首页 > 其他 > 详细

无聊的时候做些无聊的题

时间:2014-07-26 17:07:53      阅读:383      评论:0      收藏:0      [点我收藏+]

都是自己写的,如果代码有不好的地方,望请指出,哥只是一个小菜。这里将收集我自己觉得需要花点脑经的题目。题目会不断的累加,以便自己不断的积累编程经验和编程的一些技巧和思想。

 

1.实现一个函数,传递一个整形参数,如果这个整数可以分解成连续的自然数相加,则把所有的可能输出,否则,输出无法分解。
例如:
输入:15
输出:
15 = 1+2+3+4+5
15 = 4+5+6
15 = 7+8
输入:4
输出:无法分解

 

哥的源码:

 

#include <stdio.h>

void func(n)

{

    int i;

    int j;

    int sums;

    int flag =0;

    int k;

    int show =0;

    for(i=1;i <= n/2;i++)

    {

        flag = 0;

        sums =0;

        for(j=i;j <= n/2+1;j++)

        {

            sums += j;

            if(sums==n)

            {

                flag =1;

                show =1;

                break;

            }

            

        }

        if(flag ==1)

        {

            printf("%d=",n);

            for(k=i;k<=j;k++)

            {

                printf("%d",k);

                if(k<j)printf("+");

            }

            printf("\n");

            

        }

        

    }

    if(show==0)

      printf("无法分解");

}

int main(void)

{

    int n;

    scanf("%d",&n);

    

    func(n);

    

    return 0;

}

2.实现一个函数,传递一个整数参数,返回这个整数参数的阶乘的末尾有多少个0,并在main函数里输出。
例如:
输入:9
输出:1
输入:3
输出:0
输入:788
输出:195

 

哥的源码:

/*#include <stdio.h>

#include <math.h>

int sum(int n)

{

    int i=0;

    int j=0;

    int s=0;

    int b =n;

    while(n>=5)

    {

        n /= 5;

        i++;

    }

    for(j=1;j<=i;j++)

    {

        s += b/pow(5,j);

    }

    return s;

}

 

int main(void)

{

    int n;

    scanf("%d",&n);

    printf("%d",sum(n));

    return 0;

}*/

无聊的时候做些无聊的题,布布扣,bubuko.com

无聊的时候做些无聊的题

原文:http://www.cnblogs.com/Ohero/p/3870274.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!