-1
样例输出
2004-09-26 Sunday 2004-10-06 Wednesday 2004-10-16 Saturday 2004-10-17 Sunday 提示
2000.1.1. 是星期六 #include
char week[7][10]={\int year[2]={365,366};
int month[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31}; int main(){ intdays,dayofweek; int i=0,j=0; while(scanf(\ dayofweek=days%7; for(i=2000;days>=year[type(i)];i++){ days-=year[type(i)]; } for(j=0;days>=month[type(i)][j];j++){ days-=month[type(i)][j]; } printf(\ } return 0; }
int type(int m){ if(m%4!=0||(m0==0&&m@0!=0)) return 0; else return 1; }
二十三、爬楼梯 描述
树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数 例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,第二次走两级 也可以第一次走两级,第二次走一级,一共3种方法。 输入
输入包含若干行,每行包含一个正整数N,代表楼梯级数,1<=N<=30 输出
不同的走法数,每一行输入对应一行输出 样例输入 5 8 10 样例输出 8
34 89
#include
returnfibonacci(n - 1) + fibonacci(n - 2); else return 1; }
int main(){ int data[20]; int t; int i;
printf (\scanf (\for (i=0; i printf(\for (i=0; i printf(\ } system(\ return 0; } 描述 求两个不超过200位的非负整数的和。 输入 有两行,每行是一个不超过200位的非负整数,没有多余的前导0。 输出 一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。 样例输入 22222222222222222222 33333333333333333333样例输出 55555555555555555555 #include //输入大数,保存在数组中,并将数字字符转成数值,方便计算,同时返回数长度 intget_num( char *str ){ intlen=0; charch ; while( (ch=getchar()) != '\\n' ) { if ( ch>'9' || ch< '0' ) //忽略非数字字符 continue ; str[len++]=ch-'0' ; } returnlen ; } Intmain(){ char num1[201], num2[201]; char result[202]={0}; int len1,len2; intlen=0; int x , y ; len1=get_num( num1 ); len2=get_num( num2 ); len=(len1>len2)?len1:len2; //取大数长度 while ( len>= 0 ) { if ( --len1 < 0 ) x=0; else x=num1[len1] ; if ( --len2 < 0 ) y=0; else y=num2[len2] ; result[len] += (x+y); //对应位相加 if ( result[len] > 9 )//判断是否有进位 { result[len] -= 10 ; result[len-1] += 1 ; } result[len] += '0' ; //为了方便输出,转换成字符 len -- ; } if ( result[0] == '0' ) //相加结果高位没有进位,则从第二位输出 printf(\else printf(\高位有进位,则从第一位输出 system(\ return 0; } 二十五、肿瘤检测 描述 一张CT扫描的灰度图像可以用一个N*N(0 输入第一行包含一个正整数N(0 输出只有一行,该行包含两个正整数,分别为给定图像中肿瘤的面积和周长,用一个空格分开。 样例输入 6 99 99 99 99 99 99 99 99 99 50 99 99 99 99 49 49 50 51 99 50 20 25 52 99 40 50 99 99 99 99 99 99 99 99 99 99 样例输出 9 8 #include int main(intargc, char *argv[]){ intn,temp[101][101],area,cir; inti,j; area = cir = 0; scanf(\for(i=0;i scanf(\for(i=0;i if(i==0||i==(n-1)||j==0||j==(n-1))cir++; else if(temp[i][j-1]>50||temp[i][j+1]>50||temp[i-1][j]>50||temp[i+1][j]>50)cir++; } } printf(\ system(\ return 0; } 二十六、肿瘤面积 描述 在一个正方形的灰度图片上,肿瘤是一块矩形的区域,肿瘤的边缘所在的像素点在图片中用0表示。其它肿瘤内和肿瘤外的点都用255表示。现在要求你编写一个程序,计算肿瘤内部的像素点的个数(不包括肿瘤边缘上的点)。已知肿瘤的边缘平行于图像的边缘。 输入 只有一个测试样例。第一行有一个整数n,表示正方形图像的边长。其后n行每行有n个整数,取值为0或255。整数之间用一个空格隔开。已知n不大于1000。 输出 输出一行,该行包含一个整数,为要求的肿瘤内的像素点的个数。 样例输入 5 255 255 255 255 255 255 0 0 0 255 255 0 255 0 255 255 0 0 0 255 255 255 255 255 255 样例输出 1提示 如果使用静态数组来表示图片数据,需要将该数组定义成全局变量。 数每行0和255的个数,统计肿瘤边长 #include int main(intargc, char *argv[]) { int n,temp,x,y,num255,num0; inti,j; num0 = num255 = x = y = 0; scanf(\ for(i=0;i if(num255==n)num0=num255=0; else{ y++; if(num0>x)x = num0; num0 = num255 = 0; } } printf(\ system(\ return 0; } 描述 在国外,每月的13号和每周的星期5都是不吉利的。特别是当13号那天恰好是星期5时,更不吉利。已知某年的一月一日是星期w,并且这一年一定不是闰年,求出这一年所有13号那天是星期5的月份,按从小到大的顺序输出月份数字。(w=1..7) 输入 输入有一行,即一月一日星期几(w)。(1<=w<=7) 输出 输出有一到多行,每行一个月份,表示该月的13日是星期五。 样例输入 7 样例输出 1 10 提示 1、3、5、7、8、10、12月各有31天 4、6、9、11月各有30天 2月有28天 #include int main(intargc, char *argv[]) { //dayof13记录每个月的13号是该年的第几天,对7取余,即与余数是相同的星期 // 所求的星期就是 w + (day%7 - 1),若大于7,则减去7