都是自己写的,如果代码有不好的地方,望请指出,哥只是一个小菜。这里将收集我自己觉得需要花点脑经的题目。题目会不断的累加,以便自己不断的积累编程经验和编程的一些技巧和思想。
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;
}*/
原文地址:http://www.cnblogs.com/Ohero/p/3870274.html