|
【直播】蓝桥杯大赛个人赛(软件类)省赛真题练习 |
一派护法 十九级 |
题目标题: 高斯日记
大数学家高斯有个好习惯:无论如何都要记日记。
他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210
后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?
高斯出生于:1777年4月30日。 在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。
高斯获得博士学位的那天日记上标着:8113
请你算出高斯获得博士学位的年月日。
提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21
请严格按照格式,通过浏览器提交答案。 注意:只提交这个日期,不要写其它附加内容,比如:说明性的文字。
|
一派护法 十九级 |
【编写的VS2012 C程序】 // Match.cpp : Defines the entry point for the console application. //
#include "stdafx.h" #include <stdio.h> #include <conio.h>
void checkLeapYear(int *daynum, const int year) { if ((year % 100 != 0 && year % 4 == 0) || (year % 100 == 0 && year % 400 == 0)) *daynum = 29; else *daynum = 28; }
void cal(const int num) { int daynum[] = {0, 31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int year = 1777; int month = 4; int day = 30; int i = num - 1; // 1777-4-30 is his first day checkLeapYear(&daynum[2], year); while (i--) { day++; if (day > daynum[month]) { day = 1; month++; if (month > 12) { month = 1; year++; checkLeapYear(&daynum[2], year); } } } printf("Day %d: %4d-%02d-%02d\n", num, year, month, day); }
int _tmain(int argc, _TCHAR* argv[]) { cal(1); cal(3); cal(5343); cal(8113); _getch(); return 0; } 【运行结果】 Day 1: 1777-04-30 Day 3: 1777-05-02 Day 5343: 1791-12-15 Day 8113: 1799-07-16
|
一派护法 十九级 |
VS2012把C语言修改了很多,比如禁止使用标准的sprintf、scanf和getch函数,而且还有#include "stdafx.h"这句话禁止删除(除非创建的是空工程),main主函数的名字也被改成了_tmain,默认运行控制台程序时窗口一闪而过,必须手动加_getch();等。 因此,编写程序时,最好采用大赛所推荐的Dev-C++开发环境(使用的是GNU的gcc编译器)
|
一派护法 十九级 |
标题: 马虎的算式
小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。
有一次,老师出的题目是:36 x 495 = ?
他却给抄成了:396 x 45 = ?
但结果却很戏剧性,他的答案竟然是对的!!
因为 36 * 495 = 396 * 45 = 17820
类似这样的巧合情况可能还有很多,比如:27 * 594 = 297 * 54
假设 a b c d e 代表1~9不同的5个数字(注意是各不相同的数字,且不含0)
能满足形如: ab * cde = adb * ce 这样的算式一共有多少种呢?
请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。
满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数。
答案直接通过浏览器提交。 注意:只提交一个表示最终统计种类数的数字,不要提交解答过程或其它多余的内容。
|
一派护法 十九级 |
回復:4樓 由于C语言对1~9这九个数作A(5, 9)排列十分复杂(光是做全排A9,9都十分复杂,还别说挑五个出来作排列了!,参见: https://zh.arslanbar.net/post.php?t=23414),所以可以换个方式,用for循环让变量i从12345开始一直计到98765,每次循环都检查这五个数字是否互不相同,如果有两个数字是相同就continue,否则就检查是否满足ab * cde = adb * ce,满足则输出这个算式。
|
一派护法 十九级 |
#include <stdio.h>
int main() { int num, i, j, flag; int digits[5]; int ab, cde, adb, ce; int count = 0; for (num = 12345; num <= 98765; num++) { digits[4] = num / 10000; digits[3] = num % 10000 / 1000; digits[2] = num % 1000 / 100; digits[1] = num % 100 / 10; digits[0] = num % 10; flag = 0; for (i = 0; i < 5; i++) { if (digits[i] == 0) { // 0 is forbidden flag = 1; break; } for (j = i + 1; j < 5; j++) { if (digits[i] == digits[j]) { flag = 1; break; } } if (flag == 1) break; } if (flag == 1) continue; ab = digits[4] * 10 + digits[3]; cde = digits[2] * 100 + digits[1] * 10 + digits[0]; adb = digits[4] * 100 + digits[1] * 10 + digits[3]; ce = digits[2] * 10 + digits[0]; if (ab * cde == adb * ce) { count++; printf("%d * %d = %d * %d = %d\n", ab, cde, adb, ce, ab * cde); } } printf("Count: %d\n", count); return 0; } 【运行结果】 14 * 253 = 154 * 23 = 3542 14 * 352 = 154 * 32 = 4928 14 * 536 = 134 * 56 = 7504 14 * 938 = 134 * 98 = 13132 15 * 264 = 165 * 24 = 3960 15 * 462 = 165 * 42 = 6930 16 * 238 = 136 * 28 = 3808 16 * 275 = 176 * 25 = 4400 16 * 294 = 196 * 24 = 4704 16 * 374 = 176 * 34 = 5984 16 * 392 = 196 * 32 = 6272 16 * 473 = 176 * 43 = 7568 16 * 572 = 176 * 52 = 9152 17 * 286 = 187 * 26 = 4862 17 * 385 = 187 * 35 = 6545 17 * 394 = 197 * 34 = 6698 17 * 583 = 187 * 53 = 9911 17 * 682 = 187 * 62 = 11594 18 * 297 = 198 * 27 = 5346 18 * 396 = 198 * 36 = 7128 18 * 495 = 198 * 45 = 8910 18 * 594 = 198 * 54 = 10692 18 * 693 = 198 * 63 = 12474 18 * 792 = 198 * 72 = 14256 23 * 154 = 253 * 14 = 3542 23 * 451 = 253 * 41 = 10373 24 * 165 = 264 * 15 = 3960 24 * 196 = 294 * 16 = 4704 24 * 561 = 264 * 51 = 13464 24 * 936 = 234 * 96 = 22464 25 * 176 = 275 * 16 = 4400 25 * 374 = 275 * 34 = 9350 25 * 473 = 275 * 43 = 11825 25 * 671 = 275 * 61 = 16775 26 * 187 = 286 * 17 = 4862 26 * 385 = 286 * 35 = 10010 26 * 583 = 286 * 53 = 15158 26 * 781 = 286 * 71 = 20306 27 * 198 = 297 * 18 = 5346 27 * 396 = 297 * 36 = 10692 27 * 495 = 297 * 45 = 13365 27 * 594 = 297 * 54 = 16038 27 * 693 = 297 * 63 = 18711 27 * 891 = 297 * 81 = 24057 28 * 136 = 238 * 16 = 3808 28 * 469 = 268 * 49 = 13132 28 * 596 = 298 * 56 = 16688 32 * 154 = 352 * 14 = 4928 32 * 196 = 392 * 16 = 6272 32 * 451 = 352 * 41 = 14432 34 * 176 = 374 * 16 = 5984 34 * 197 = 394 * 17 = 6698 34 * 275 = 374 * 25 = 9350 34 * 572 = 374 * 52 = 19448 34 * 591 = 394 * 51 = 20094 34 * 671 = 374 * 61 = 22814 35 * 187 = 385 * 17 = 6545 35 * 286 = 385 * 26 = 10010 35 * 682 = 385 * 62 = 23870 35 * 781 = 385 * 71 = 27335 36 * 198 = 396 * 18 = 7128 36 * 297 = 396 * 27 = 10692 36 * 495 = 396 * 45 = 17820 36 * 594 = 396 * 54 = 21384 36 * 792 = 396 * 72 = 28512 36 * 891 = 396 * 81 = 32076 38 * 597 = 398 * 57 = 22686 38 * 796 = 398 * 76 = 30248 41 * 253 = 451 * 23 = 10373 41 * 352 = 451 * 32 = 14432 42 * 165 = 462 * 15 = 6930 42 * 561 = 462 * 51 = 23562 43 * 176 = 473 * 16 = 7568 43 * 275 = 473 * 25 = 11825 43 * 572 = 473 * 52 = 24596 43 * 671 = 473 * 61 = 28853 45 * 198 = 495 * 18 = 8910 45 * 297 = 495 * 27 = 13365 45 * 396 = 495 * 36 = 17820 45 * 693 = 495 * 63 = 31185 45 * 792 = 495 * 72 = 35640 45 * 891 = 495 * 81 = 40095 49 * 268 = 469 * 28 = 13132 51 * 264 = 561 * 24 = 13464 51 * 394 = 591 * 34 = 20094 51 * 462 = 561 * 42 = 23562 52 * 176 = 572 * 16 = 9152 52 * 374 = 572 * 34 = 19448 52 * 473 = 572 * 43 = 24596 52 * 671 = 572 * 61 = 34892 52 * 931 = 532 * 91 = 48412 53 * 187 = 583 * 17 = 9911 53 * 286 = 583 * 26 = 15158 53 * 682 = 583 * 62 = 36146 53 * 781 = 583 * 71 = 41393 54 * 198 = 594 * 18 = 10692 54 * 297 = 594 * 27 = 16038 54 * 396 = 594 * 36 = 21384 54 * 693 = 594 * 63 = 37422 54 * 792 = 594 * 72 = 42768 54 * 891 = 594 * 81 = 48114 56 * 134 = 536 * 14 = 7504 56 * 298 = 596 * 28 = 16688 56 * 894 = 596 * 84 = 50064 56 * 938 = 536 * 98 = 52528 57 * 398 = 597 * 38 = 22686 61 * 275 = 671 * 25 = 16775 61 * 374 = 671 * 34 = 22814 61 * 473 = 671 * 43 = 28853 61 * 572 = 671 * 52 = 34892 62 * 187 = 682 * 17 = 11594 62 * 385 = 682 * 35 = 23870 62 * 583 = 682 * 53 = 36146 62 * 781 = 682 * 71 = 48422 63 * 198 = 693 * 18 = 12474 63 * 297 = 693 * 27 = 18711 63 * 495 = 693 * 45 = 31185 63 * 594 = 693 * 54 = 37422 63 * 792 = 693 * 72 = 49896 63 * 891 = 693 * 81 = 56133 71 * 286 = 781 * 26 = 20306 71 * 385 = 781 * 35 = 27335 71 * 583 = 781 * 53 = 41393 71 * 682 = 781 * 62 = 48422 72 * 198 = 792 * 18 = 14256 72 * 396 = 792 * 36 = 28512 72 * 495 = 792 * 45 = 35640 72 * 594 = 792 * 54 = 42768 72 * 693 = 792 * 63 = 49896 72 * 891 = 792 * 81 = 64152 76 * 398 = 796 * 38 = 30248 81 * 297 = 891 * 27 = 24057 81 * 396 = 891 * 36 = 32076 81 * 495 = 891 * 45 = 40095 81 * 594 = 891 * 54 = 48114 81 * 693 = 891 * 63 = 56133 81 * 792 = 891 * 72 = 64152 84 * 596 = 894 * 56 = 50064 91 * 532 = 931 * 52 = 48412 96 * 234 = 936 * 24 = 22464 98 * 134 = 938 * 14 = 13132 98 * 536 = 938 * 56 = 52528 Count: 142
|
一派护法 十九级 |
回復:6樓 这个程序我写了15分钟。 所以在竞赛时,时间控制很重要。。。
|
一派护法 十九级 |
第七届蓝桥杯全国软件和信息技术专业人才大赛 赛程安排
个人赛报名时间:2015年10月到2015年12月15日截止
省赛时间:2016年3月
省赛地点:各分赛区指定赛点学校。
国赛(全国总决赛)时间:2016年5月
国赛竞赛地点:暂定北京
|
一派护法 十九级 |
|