《2022年第二届国信蓝点杯竞赛三道大题代码 .pdf》由会员分享,可在线阅读,更多相关《2022年第二届国信蓝点杯竞赛三道大题代码 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2.程序设计上三角方阵问题:输入: n 输出:上三角方阵例如:输入3,输出:1 2 3 6 4 5 输入 5,输出:1 2 3 4 5 12 13 14 6 11 15 7 10 8 9 要求:程序运行时,要求用户输入整数n(320)程序输出:上三角方阵输出格式:每个数据宽度为4,右对齐。#include #define N 64 int rectNN=0; int start = 1; void work(int n, int start_x, int start_y) int i=start_y,j; for(j=start_x; j=start_x; j-,i+) / 第二条边recti
2、j = start+; for(i-=2, j=start_x; rectij=0; i-) / 第三条边rectij = start+; if( rectstart_x+1start_y+1 = 0 ) work(n-2,start_x+1,start_y+1); int main() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - int n,i,j; scanf(%d,&n); work(n,0,0); for(i=0;i
3、n;i+) for(j=0;jn-i;j+) printf(%-4d,rectij); printf(n); return 0; 3.公司发了某商品的购物劵1000 元,限定只能购买店中的m 种商品。 每种商品的价格分别为 m1,m2, ,要求程序列出所有的正好能消费完该购物劵的不同购物方法。输入:第一行是一个整数m,代表可购物的商品的种类数。接下来 m 行,每个一行,分别代表这m 种商品的单价。输出:第一行是一个整数,表示共有多少种方案第二行开始,每种方案占一行,表示对每种商品购买的数量,中间用空格分隔。例如:输入:2 200 300 输出:2 2 2 5 0 输入:2 500 800 输出
4、:1 2 0 #include #define N 128 int comboN; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - int use = 0; int price_n50; int valid5050; int valid = 0; void zuhe(int m_price, int n, int price) int i; if(price 0) return ; else if(price = 0) / fo
5、r(i=0;in;i+) for(j=0;juse;j+) / for(i=0; i 0 ) for(i=0; in; i+) combouse+ = m_pricei; price -= m_pricei; zuhe(m_price, t, n, price ); use-; price += m_pricei; int main() int i, m; int m_priceN; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - -
6、- scanf(%d,&m); for(i=0; im; i+) scanf(%d, &m_pricei); printf(n); zuhe(m_price, m, 1000); return 0; / 1 输入密码/ 2 输入待加密数据串/ 3 构造加密矩阵/ 4 在待加密串中逐个获得两个字符/ 5 找出两个字符的位置/ 6 判断两位置关系/ 7 加密处理,放入加密后的串中#include #include #define N 5 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4
7、 页,共 8 页 - - - - - - - - - enum wayLAST_ONE, SAME, NOT_RECT, SAME_R_C, IS_RECT; /* LAST_ONE / 最后一个字母SAME / 相同字母NOT_RECT / 不在矩阵中SAME_R_C / 在相同行列中IS_RECT / 在矩形中*/ typedef struct int x; int y; Point; char mima_rectNN=0; / 加密矩阵数据int nfind_chr(char* str, char chr) / 测试字符是否存在字符串中 char* p = str; while(*p)
8、if( *p=chr ) return 0; p+; return 1; void fill_rect( char* mima ) / 填充加密矩阵 int len; char chr; len = strlen(mima); strcpy(char*)mima_rect, mima); for(chr=a; chr=z; chr+) if(nfind_chr( (char*)mima_rect, chr) ) ( (char*)mima_rect )len+ = chr; Point find_sit(char chr) / 找出字母在矩阵中的位置名师资料总结 - - -精品资料欢迎下载 -
9、 - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 8 页 - - - - - - - - - int i,j; Point p=-1,-1; for(i=0;i5;i+) for(j=0;j5;j+) if(mima_rectij=chr) p.x = i; p.y = j; return p; enum way find_relation(Point p1,Point p2) / 找出两点的关系 / 1 if(mima_rectp1.xp1.y = mima_rectp2.xp2.y) return SAME; i
10、f(p1.x = -1 | p2.x = -1) return NOT_RECT; if(p1.x = p2.x | p1.y = p2.y) return SAME_R_C; if(p1.x != p2.x & p1.y != p2.y) return IS_RECT; return LAST_ONE; void jiami(char data, char data_locked) / 开始加密 char* go = data; char* go_l = data_locked; Point p1,p2; enum way relation; / 赋予初始值p1,p2 while( *go
11、& *(go+1) ) p1 = find_sit(*go); p2 = find_sit(*(go+1); relation = find_relation(p1,p2); switch(relation) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页 - - - - - - - - - /case LAST_ONE: case SAME: *go_l = *go; *(go_l+1) = *(go+1); break; case NOT_RECT: *go_
12、l = *go; *(go_l+1) = *(go+1); break; case SAME_R_C: *go_l = *(go+1); *(go_l+1) = *go; break; case IS_RECT: ; *go_l = mima_rectp1.xp2.y; *(go_l+1) = mima_rectp2.xp1.y; go += 2; / 加密后两个数go_l += 2; if(*go) *go_l = *go; *(go_l+1) = 0; else *go_l = 0; int main() int i,j; char mima26; / 密码char data51; / 未
13、加密数据char data_locked51; / 加密后数据scanf(%s%s,mima,data); fill_rect(mima); jiami(data, data_locked); /*for(i=0;i5;i+) for(j=0;j5;j+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 8 页 - - - - - - - - - printf(%2c,mima_rectij); printf(n); */ printf(n%sn,data_locked); return 0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -