【英文原題】less
Is Friday the 13th really an unusual event? 函數
That is, does the 13th of the month land on a Friday less often than on any other day of the week? To answer this question, write a program that will compute the frequency that the 13th of each month lands on Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, and Saturday over a given period of N years. The time period to test will be from January 1, 1900 to December 31, 1900+N-1 for a given number of years, N. N is positive and will not exceed 400. ui
Note that the start year is NINETEEN HUNDRED, not 1990. this
There are few facts you need to know before you can solve this problem: spa
Do not use any built-in date functions in your computer language. 翻譯
Don't just precompute the answers, either, please. rest
One line with the integer N.code
20
Seven space separated integers on one line. These integers represent the number of times the 13th falls on Saturday, Sunday, Monday, Tuesday, ..., Friday.blog
36 33 34 33 35 35 34
【中文翻譯】
13號又是一個星期五。13號在星期五比在其餘日子少嗎?爲了回答這個問題,寫一個程序,要求計算每一個月的十三號落在週一到週日的次數。給出N年的一個週期,要求計算1900年1月1日至1900+N-1年12月31日中十三號落在週一到週日的次數,N爲正整數且不大於400.ci
這裏有一些你要知道的:
一、1900年1月1日是星期一.
二、4,6,11和9月有30天.其餘月份除了2月都有31天.閏年2月有29天,平年2月有28天.
三、年份能夠被4整除的爲閏年(1992=4*498 因此 1992年是閏年,可是1990年不是閏年).
四、以上規則不適合於世紀年。能夠被400整除的世紀年爲閏年,不然爲平年。因此,1700,1800,1900和2100年是平年,而2000年是閏年.
請不要調用現成的函數
請不要預先算好數據(就是叫不許打表)!
一個正整數n.
輸出格式:**輸出請從週六開始
20
36 33 34 33 35 35 34
1 #include<stdio.h> 2 bool isLeapYear(int year)//判斷閏年 3 { 4 if(year == 1900 || year == 2000 || year == 2100 || year == 2200 || year == 2300 || year == 2400 || year == 2500){ 5 if(year % 400 == 0) 6 { 7 return true; 8 } 9 } 10 else if(year % 4 == 0) 11 { 12 return true;//是閏年 13 } 14 return false;//不是閏年 15 } 16 int main(){ 17 int n; 18 scanf("%d",&n); 19 int ans[7] = {0}; 20 int day = 1; 21 for(int i = 1900;i < 1900 + n;i++) 22 { 23 if(isLeapYear(i) == false) 24 { 25 for(int j = 0;j < 31;j++) 26 {//平年1月 27 if(j == 13){ 28 if(day == 1){ 29 ans[day - 1]++; 30 }else if(day == 2){ 31 ans[day - 1]++; 32 }else if(day == 3){ 33 ans[day - 1]++; 34 }else if(day == 4){ 35 ans[day - 1]++; 36 }else if(day == 5){ 37 ans[day - 1]++; 38 }else if(day == 6){ 39 ans[day - 1]++; 40 }else if(day == 7){ 41 ans[day - 1]++; 42 } 43 } 44 day++; 45 if(day > 7){ 46 day = 1; 47 } 48 } 49 for(int j = 0;j < 28;j++){//平年2月 50 if(j == 13){ 51 if(day == 1){ 52 ans[day - 1]++; 53 }else if(day == 2){ 54 ans[day - 1]++; 55 }else if(day == 3){ 56 ans[day - 1]++; 57 }else if(day == 4){ 58 ans[day - 1]++; 59 }else if(day == 5){ 60 ans[day - 1]++; 61 }else if(day == 6){ 62 ans[day - 1]++; 63 }else if(day == 7){ 64 ans[day - 1]++; 65 } 66 } 67 day++; 68 if(day > 7){ 69 day = 1; 70 } 71 } 72 for(int j = 0;j < 31;j++){//平年3月 73 if(j == 13){ 74 if(day == 1){ 75 ans[day - 1]++; 76 }else if(day == 2){ 77 ans[day - 1]++; 78 }else if(day == 3){ 79 ans[day - 1]++; 80 }else if(day == 4){ 81 ans[day - 1]++; 82 }else if(day == 5){ 83 ans[day - 1]++; 84 }else if(day == 6){ 85 ans[day - 1]++; 86 }else if(day == 7){ 87 ans[day - 1]++; 88 } 89 } 90 day++; 91 if(day > 7){ 92 day = 1; 93 } 94 } 95 for(int j = 0;j < 30;j++){//平年4月 96 if(j == 13){ 97 if(day == 1){ 98 ans[day - 1]++; 99 }else if(day == 2){ 100 ans[day - 1]++; 101 }else if(day == 3){ 102 ans[day - 1]++; 103 }else if(day == 4){ 104 ans[day - 1]++; 105 }else if(day == 5){ 106 ans[day - 1]++; 107 }else if(day == 6){ 108 ans[day - 1]++; 109 }else if(day == 7){ 110 ans[day - 1]++; 111 } 112 } 113 day++; 114 if(day > 7){ 115 day = 1; 116 } 117 } 118 for(int j = 0;j < 31;j++){//平年5月 119 if(j == 13){ 120 if(day == 1){ 121 ans[day - 1]++; 122 }else if(day == 2){ 123 ans[day - 1]++; 124 }else if(day == 3){ 125 ans[day - 1]++; 126 }else if(day == 4){ 127 ans[day - 1]++; 128 }else if(day == 5){ 129 ans[day - 1]++; 130 }else if(day == 6){ 131 ans[day - 1]++; 132 }else if(day == 7){ 133 ans[day - 1]++; 134 } 135 } 136 day++; 137 if(day > 7){ 138 day = 1; 139 } 140 } 141 for(int j = 0;j < 30;j++){//平年6月 142 if(j == 13){ 143 if(day == 1){ 144 ans[day - 1]++; 145 }else if(day == 2){ 146 ans[day - 1]++; 147 }else if(day == 3){ 148 ans[day - 1]++; 149 }else if(day == 4){ 150 ans[day - 1]++; 151 }else if(day == 5){ 152 ans[day - 1]++; 153 }else if(day == 6){ 154 ans[day - 1]++; 155 }else if(day == 7){ 156 ans[day - 1]++; 157 } 158 } 159 day++; 160 if(day > 7){ 161 day = 1; 162 } 163 } 164 for(int j = 0;j < 31;j++){//平年7月 165 if(j == 13){ 166 if(day == 1){ 167 ans[day - 1]++; 168 }else if(day == 2){ 169 ans[day - 1]++; 170 }else if(day == 3){ 171 ans[day - 1]++; 172 }else if(day == 4){ 173 ans[day - 1]++; 174 }else if(day == 5){ 175 ans[day - 1]++; 176 }else if(day == 6){ 177 ans[day - 1]++; 178 }else if(day == 7){ 179 ans[day - 1]++; 180 } 181 } 182 day++; 183 if(day > 7){ 184 day = 1; 185 } 186 } 187 for(int j = 0;j < 31;j++){//平年8月 188 if(j == 13){ 189 if(day == 1){ 190 ans[day - 1]++; 191 }else if(day == 2){ 192 ans[day - 1]++; 193 }else if(day == 3){ 194 ans[day - 1]++; 195 }else if(day == 4){ 196 ans[day - 1]++; 197 }else if(day == 5){ 198 ans[day - 1]++; 199 }else if(day == 6){ 200 ans[day - 1]++; 201 }else if(day == 7){ 202 ans[day - 1]++; 203 } 204 } 205 day++; 206 if(day > 7){ 207 day = 1; 208 } 209 } 210 for(int j = 0;j < 30;j++){//平年9月 211 if(j == 13){ 212 if(day == 1){ 213 ans[day - 1]++; 214 }else if(day == 2){ 215 ans[day - 1]++; 216 }else if(day == 3){ 217 ans[day - 1]++; 218 }else if(day == 4){ 219 ans[day - 1]++; 220 }else if(day == 5){ 221 ans[day - 1]++; 222 }else if(day == 6){ 223 ans[day - 1]++; 224 }else if(day == 7){ 225 ans[day - 1]++; 226 } 227 } 228 day++; 229 if(day > 7){ 230 day = 1; 231 } 232 } 233 for(int j = 0;j < 31;j++){//平年10月 234 if(j == 13){ 235 if(day == 1){ 236 ans[day - 1]++; 237 }else if(day == 2){ 238 ans[day - 1]++; 239 }else if(day == 3){ 240 ans[day - 1]++; 241 }else if(day == 4){ 242 ans[day - 1]++; 243 }else if(day == 5){ 244 ans[day - 1]++; 245 }else if(day == 6){ 246 ans[day - 1]++; 247 }else if(day == 7){ 248 ans[day - 1]++; 249 } 250 } 251 day++; 252 if(day > 7){ 253 day = 1; 254 } 255 } 256 for(int j = 0;j < 30;j++){//平年11月 257 if(j == 13){ 258 if(day == 1){ 259 ans[day - 1]++; 260 }else if(day == 2){ 261 ans[day - 1]++; 262 }else if(day == 3){ 263 ans[day - 1]++; 264 }else if(day == 4){ 265 ans[day - 1]++; 266 }else if(day == 5){ 267 ans[day - 1]++; 268 }else if(day == 6){ 269 ans[day - 1]++; 270 }else if(day == 7){ 271 ans[day - 1]++; 272 } 273 } 274 day++; 275 if(day > 7){ 276 day = 1; 277 } 278 } 279 for(int j = 0;j < 31;j++){//平年12月 280 if(j == 13){ 281 if(day == 1){ 282 ans[day - 1]++; 283 }else if(day == 2){ 284 ans[day - 1]++; 285 }else if(day == 3){ 286 ans[day - 1]++; 287 }else if(day == 4){ 288 ans[day - 1]++; 289 }else if(day == 5){ 290 ans[day - 1]++; 291 }else if(day == 6){ 292 ans[day - 1]++; 293 }else if(day == 7){ 294 ans[day - 1]++; 295 } 296 } 297 day++; 298 if(day > 7){ 299 day = 1; 300 } 301 } 302 } 303 else{ 304 for(int j = 0;j < 31;j++){//閏年1月 305 if(j == 13){ 306 if(day == 1){ 307 ans[day - 1]++; 308 }else if(day == 2){ 309 ans[day - 1]++; 310 }else if(day == 3){ 311 ans[day - 1]++; 312 }else if(day == 4){ 313 ans[day - 1]++; 314 }else if(day == 5){ 315 ans[day - 1]++; 316 }else if(day == 6){ 317 ans[day - 1]++; 318 }else if(day == 7){ 319 ans[day - 1]++; 320 } 321 } 322 day++; 323 if(day > 7){ 324 day = 1; 325 } 326 } 327 for(int j = 0;j < 29;j++){//閏年2月 328 if(j == 13){ 329 if(day == 1){ 330 ans[day - 1]++; 331 }else if(day == 2){ 332 ans[day - 1]++; 333 }else if(day == 3){ 334 ans[day - 1]++; 335 }else if(day == 4){ 336 ans[day - 1]++; 337 }else if(day == 5){ 338 ans[day - 1]++; 339 }else if(day == 6){ 340 ans[day - 1]++; 341 }else if(day == 7){ 342 ans[day - 1]++; 343 } 344 } 345 day++; 346 if(day > 7){ 347 day = 1; 348 } 349 } 350 for(int j = 0;j < 31;j++){//閏年3月 351 if(j == 13){ 352 if(day == 1){ 353 ans[day - 1]++; 354 }else if(day == 2){ 355 ans[day - 1]++; 356 }else if(day == 3){ 357 ans[day - 1]++; 358 }else if(day == 4){ 359 ans[day - 1]++; 360 }else if(day == 5){ 361 ans[day - 1]++; 362 }else if(day == 6){ 363 ans[day - 1]++; 364 }else if(day == 7){ 365 ans[day - 1]++; 366 } 367 } 368 day++; 369 if(day > 7){ 370 day = 1; 371 } 372 } 373 for(int j = 0;j < 30;j++){//閏年4月 374 if(j == 13){ 375 if(day == 1){ 376 ans[day - 1]++; 377 }else if(day == 2){ 378 ans[day - 1]++; 379 }else if(day == 3){ 380 ans[day - 1]++; 381 }else if(day == 4){ 382 ans[day - 1]++; 383 }else if(day == 5){ 384 ans[day - 1]++; 385 }else if(day == 6){ 386 ans[day - 1]++; 387 }else if(day == 7){ 388 ans[day - 1]++; 389 } 390 } 391 day++; 392 if(day > 7){ 393 day = 1; 394 } 395 } 396 for(int j = 0;j < 31;j++){//閏年5月 397 if(j == 13){ 398 if(day == 1){ 399 ans[day - 1]++; 400 }else if(day == 2){ 401 ans[day - 1]++; 402 }else if(day == 3){ 403 ans[day - 1]++; 404 }else if(day == 4){ 405 ans[day - 1]++; 406 }else if(day == 5){ 407 ans[day - 1]++; 408 }else if(day == 6){ 409 ans[day - 1]++; 410 }else if(day == 7){ 411 ans[day - 1]++; 412 } 413 } 414 day++; 415 if(day > 7){ 416 day = 1; 417 } 418 } 419 for(int j = 0;j < 30;j++){//閏年6月 420 if(j == 13){ 421 if(day == 1){ 422 ans[day - 1]++; 423 }else if(day == 2){ 424 ans[day - 1]++; 425 }else if(day == 3){ 426 ans[day - 1]++; 427 }else if(day == 4){ 428 ans[day - 1]++; 429 }else if(day == 5){ 430 ans[day - 1]++; 431 }else if(day == 6){ 432 ans[day - 1]++; 433 }else if(day == 7){ 434 ans[day - 1]++; 435 } 436 } 437 day++; 438 if(day > 7){ 439 day = 1; 440 } 441 } 442 for(int j = 0;j < 31;j++){//閏年7月 443 if(j == 13){ 444 if(day == 1){ 445 ans[day - 1]++; 446 }else if(day == 2){ 447 ans[day - 1]++; 448 }else if(day == 3){ 449 ans[day - 1]++; 450 }else if(day == 4){ 451 ans[day - 1]++; 452 }else if(day == 5){ 453 ans[day - 1]++; 454 }else if(day == 6){ 455 ans[day - 1]++; 456 }else if(day == 7){ 457 ans[day - 1]++; 458 } 459 } 460 day++; 461 if(day > 7){ 462 day = 1; 463 } 464 } 465 for(int j = 0;j < 31;j++){//閏年8月 466 if(j == 13){ 467 if(day == 1){ 468 ans[day - 1]++; 469 }else if(day == 2){ 470 ans[day - 1]++; 471 }else if(day == 3){ 472 ans[day - 1]++; 473 }else if(day == 4){ 474 ans[day - 1]++; 475 }else if(day == 5){ 476 ans[day - 1]++; 477 }else if(day == 6){ 478 ans[day - 1]++; 479 }else if(day == 7){ 480 ans[day - 1]++; 481 } 482 } 483 day++; 484 if(day > 7){ 485 day = 1; 486 } 487 } 488 for(int j = 0;j < 30;j++){//閏年9月 489 if(j == 13){ 490 if(day == 1){ 491 ans[day - 1]++; 492 }else if(day == 2){ 493 ans[day - 1]++; 494 }else if(day == 3){ 495 ans[day - 1]++; 496 }else if(day == 4){ 497 ans[day - 1]++; 498 }else if(day == 5){ 499 ans[day - 1]++; 500 }else if(day == 6){ 501 ans[day - 1]++; 502 }else if(day == 7){ 503 ans[day - 1]++; 504 } 505 } 506 day++; 507 if(day > 7){ 508 day = 1; 509 } 510 } 511 for(int j = 0;j < 31;j++){//閏年10月 512 if(j == 13){ 513 if(day == 1){ 514 ans[day - 1]++; 515 }else if(day == 2){ 516 ans[day - 1]++; 517 }else if(day == 3){ 518 ans[day - 1]++; 519 }else if(day == 4){ 520 ans[day - 1]++; 521 }else if(day == 5){ 522 ans[day - 1]++; 523 }else if(day == 6){ 524 ans[day - 1]++; 525 }else if(day == 7){ 526 ans[day - 1]++; 527 } 528 } 529 day++; 530 if(day > 7){ 531 day = 1; 532 } 533 } 534 for(int j = 0;j < 30;j++){//閏年11月 535 if(j == 13){ 536 if(day == 1){ 537 ans[day - 1]++; 538 }else if(day == 2){ 539 ans[day - 1]++; 540 }else if(day == 3){ 541 ans[day - 1]++; 542 }else if(day == 4){ 543 ans[day - 1]++; 544 }else if(day == 5){ 545 ans[day - 1]++; 546 }else if(day == 6){ 547 ans[day - 1]++; 548 }else if(day == 7){ 549 ans[day - 1]++; 550 } 551 } 552 day++; 553 if(day > 7){ 554 day = 1; 555 } 556 } 557 for(int j = 0;j < 31;j++){//閏年12月 558 if(j == 13){ 559 if(day == 1){ 560 ans[day - 1]++; 561 }else if(day == 2){ 562 ans[day - 1]++; 563 }else if(day == 3){ 564 ans[day - 1]++; 565 }else if(day == 4){ 566 ans[day - 1]++; 567 }else if(day == 5){ 568 ans[day - 1]++; 569 }else if(day == 6){ 570 ans[day - 1]++; 571 }else if(day == 7){ 572 ans[day - 1]++; 573 } 574 } 575 day++; 576 if(day > 7){ 577 day = 1; 578 } 579 } 580 } 581 } 582 printf("%d ",ans[6]); 583 printf("%d ",ans[0]); 584 printf("%d ",ans[1]); 585 printf("%d ",ans[2]); 586 printf("%d ",ans[3]); 587 printf("%d ",ans[4]); 588 printf("%d ",ans[5]); 589 printf("\n"); 590 return 0; 591 }