- 博客(18)
- 收藏
- 关注
原创 4-2 跳马
题目描述:一张5*5的象棋棋盘,棋子马从左上角开始跳,跳完所有的格子。输出所有的情况并在最后输出情况个数。#include <cstdio> #include <cstring>void Dfs(int k, int x, int y);short Map[5][5]; short Rules[8][2]={2, 1, 1, 2, 2, -1, -1, 2, -2, 1 , 1, -2, -1, -
2016-05-16 21:40:55
428
原创 4-1 迷宫
题目描述:输入一个N*N的矩阵,矩阵由0,1构成。0代表有障碍,不能通过;1代表可以通过。请输出从左上角到右下角的最小步数。#include <cstdio>void Dfs(int k,int x, int y);bool Map[50][50]; short Rule[4][2] = {1, 0, 0, 1, -1, 0, 0, -1};//能省空间就省空间。int N, Ans=9999;in
2016-05-16 20:31:35
590
原创 3-6 分解质因数
题目描述:将一个正整数N的全部质因数输出。#include <cstdio> #include <cstring>void Judge(); void R(int k, int l, int h);int J[100]; int T[50];int N;int main() { Judge(); scanf("%d", &N); R(0, 2, N); return
2016-05-12 21:33:35
683
原创 3-5 数的拆分
题目描述:输入一个正整数,拆分成正整数(可重复)的和,求所有的情况。#include <cstdio>void R(int k, int l, int h);int T[50];int N;int main() { scanf("%d", &N); R(0, 1, N); return 0; }void R(int k, int l, int h) { if(h ==
2016-05-12 21:10:00
440
原创 3-4 数的组合
题目描述:输出从前N个正整数中取出M个数(不可重复)的组合。#include <cstdio>void R(int k, int l);int T[50];int N, M;int main() { scanf("%d%d", &N, &M); R(0, 0); return 0; }void R(int k, int l) { if(k == M) {
2016-05-12 21:05:24
403
原创 3-3 字母排列
题目描述:输出由A、B、C三个字母组成长度为N的没有连续3个相同的子串。#include <cstdio>void Dfs(int k, int l1, int l2);int T[50];int N;int main() { scanf("%d", &N); Dfs(0, 0, 0); return 0; }void Dfs(int k, int l1, int l2) {
2016-05-12 20:34:41
788
原创 3-2 八皇后问题
题目描述:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,有多少种摆法。#include <cstdio> #include <cstring>void Dfs(int k);int S[8];//标记列。 int L[15];//标记左斜行。 int R[15];//标记右斜行。 int Ans = 0;int main() {
2016-05-12 20:18:13
387
原创 3-1 错排
题目描述:有N封信,要投入到N个不同的邮筒中,这N封信都投错的方案有多少种。#include <cstdio> #include <cstring>void Dfs(int k);int H[50];//标记数组,标记该邮筒是否已经投过信。int N, Ans = 0;int main() { memset(H, 0, sizeof(H)); scanf("%d", &N);
2016-05-12 19:56:09
432
原创 2-4 数的排列
题目描述:输出从N个不同的正整数(限定次数)中取出M个数的排列。#include <cstdio>void Dfs(int k);int J[50];//记录数组。 int T[50]; int H[50];//标记数组,判断该数次数是否用尽。int N, M;int main() { scanf("%d%d", &N, &M); for(int a=1; a<=N; a++) {
2016-05-12 19:44:11
362
原创 2-3 限次排列
题目描述:输出从前N个正整数(限定次数)中取出M个数的排列。#include <cstdio> #include <cstring>void Dfs(int k);int T[50]; int H[50];int N, M;int main() { memset(H, 0, sizeof(H)); scanf("%d%d", &N, &M); for(int a=1; a<=
2016-05-12 19:33:21
298
原创 2-2 无重复排列
题目描述:输出从前N个正整数中取出M个数(不可重复)的排列。#include <cstdio> #include <cstring>void Dfs(int k);int T[50]; int H[50];//标记数组,判断该数是否已被用过。int N, M;int main() { memset(H, 0, sizeof(H)); scanf("%d%d", &N, &M);
2016-05-12 19:25:42
474
原创 2-1 重复排列
题目描述:输出从前N个正整数中取出M个数(可重复)的排列。#include <cstdio>void Dfs(int k);int T[50]; int H[50];int N, M;int main() { scanf("%d%d", &N, &M); Dfs(0); return 0; }void Dfs(int k) { if(k == M) {
2016-05-12 19:18:04
313
原创 1-6 Tower of Hanoi
题目描述:输入一个整数N,将N阶汉诺塔的过程输出。#include <cstdio>void Dfs(int n, char A, char B, char C);int main() { int n; scanf("%d", &n); Dfs(n, 'A', 'B', 'C'); return 0; }void Dfs(int n, char A, char B,
2016-05-12 18:53:07
386
原创 1-5 整数的第K位
题目描述:输入一个整数,输出其第K位。#include <cstdio>void Dfs(int i, int k);int main() { int n, k; scanf("%d%d", &n, &k); Dfs(n, k); return 0; }void Dfs(int i, int k) { if(k == 1) { printf("
2016-05-12 18:36:31
664
原创 1-4 最大公约数
题目描述:求两个整数的最大公约数(辗转相除法)。#include <cstdio>void Dfs(int i, int j);int main() { int n, m; scanf("%d%d", &n, &m); if(n > m) { Dfs(n, m); } else { Dfs(m, n); } return
2016-05-11 23:59:42
607
原创 1-3 倒序输出
题目描述:输入一串字符,以’.’结束,倒序输出。#include <cstdio>void Dfs();int main() { Dfs(); return 0; }void Dfs() { char c; scanf("%c", &c); if(c == '.') { return; } else { Dfs();
2016-05-11 23:49:17
418
原创 1-2 Fibonacci sequence
题目描述:输入一个整数N,输出斐波那契数列的前N项。#include <cstdio>void Dfs(int f1, int f2, int k);int N;int main() { scanf("%d", &N); printf("F(1)=1\nF(2)=1\n"); Dfs(1, 1, 3); return 0; }void Dfs(int f1, int
2016-05-10 00:11:46
290
原创 1-1 求N!
题目描述:用递归来求N的阶乘。#include <cstdio>void Dfs(int k);int N, Ans=1;int main()//主函数 { scanf("%d",&N); if(N == 0) { printf("1"); } else { Dfs(1); } return 0; }void Dfs(int k
2016-05-09 23:47:15
360
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅