POJ多例题版(5)

2019-06-17 10:25

-1

样例输出

2004-09-26 Sunday 2004-10-06 Wednesday 2004-10-16 Saturday 2004-10-17 Sunday 提示

2000.1.1. 是星期六 #include int type(int);

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 #include intfibonacci (int n){ if (n > 2)

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 #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 #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 #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 #include

int main(intargc, char *argv[]) {

//dayof13记录每个月的13号是该年的第几天,对7取余,即与余数是相同的星期 // 所求的星期就是 w + (day%7 - 1),若大于7,则减去7


POJ多例题版(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:怎样编写校志

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: