帮帮忙,有两个C语言题目不会做

来源:百度知道 编辑:UC知道 时间:2024/06/23 17:24:12
帮帮忙,有两个C语言题目不会做,1.输入一个整数n,求n!中0的个数。2.已知2008年元旦是星期二,输入2008年后任意一天,求这一天的星期数?

1.这个程序在win-tc和tc2.0下都调试通过,思路上面都说了,还可以用多个字来存储超长正整数n!(13!都有62亿多),然后求(n!)/10,直到(n!)/10不是整数时为止,显然麻烦。由于任何2个连续整数中必有一个奇数一个偶数,而只有5个连续整数中才有一个5的倍数,故连续n个数中2的倍数的数是5的倍数的数的2.5倍,只要求出5的倍数的个数,必然有因子2*5=10.
# include <stdio.h>
# include <stdlib.h>
# include <conio.h>
void main(void)
{
int i,j;
printf("Please input a integer:\n");
scanf("%d",&i);
j=i/5;
printf("There are %d zero(0) in digit %d!.\n",j,i);
getch();
}
2. 这个程序在win-tc和tc2.0下都调试通过,但只能先输入当年的1月1号是星期几得出当年的某月某号是星期几,不能跨年,至于跨年的程序有机会再发上来(以前写过).
#include<stdio.h>
#include<stdlib.h>
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{
int i,n,s=0,year,month,day;
puts("Please input the weekday of date month 1/day 1:");
scanf("%d",&n);
puts("Please input the date wanted:\n");
scanf("%d%d%d",&year