9.1 NOIP普及组试题精解(2)
9-4 soldier.c
#include <stdio.h>
#define MAXN 21
};
int n, m, x, y; //n,m为B点的行列坐标位置,x,y为马的坐标位置
] = { -, -, , , , , -, - };
] = { , , , , -, -, -, - };
void horse() //初始化马和其控制点坐标位置
{
int i;
chessboard[x][y] = -; //标记马的位置
; i < ; i++) //标记马下一步的位置
{
&& x + dx[x] <= n) && (y + dy[i] >= )
&& (y + dy[i]) <= m)
chessboard[x + dx[i]][y + dy[i]] = -;
}
}
void search() //逐步搜寻出路
{
int i, j;
; i <= n; i++) //扫描第0列的各行
{
] != -) //若没有障碍
chessboard[i][] = ; //设置该位置可走路径数为1
else
break;
}
; i <= m; i++) //扫描第0行的每列
{
][i] != -) //若不是马的控制点
chessboard[][i] = ; //设置该位置可走路径数为1
else
break;
}
; i <= n; i++) //扫描各行各列
{
; j <= m; j++)
{
) //若该位置不是马的控制点
{
][j] != -) && (chessboard[i][j - ] != -)) //上面和左边也不是马的控制点
chessboard[i][j] = chessboard[i - ][j] + chessboard[i][j - ]; //将上面和左边的路径进行累加
][j] == -) && (chessboard[i][j - ] != -)) //若上面有马控制点,而左边无马控制点
chessboard[i][j] = chessboard[i][j - ]; //保存左边路径到到当前位置
][j] != -) && (chessboard[i][j - ] == -)) //若上面无马控制点,而左边有马控制点
chessboard[i][j] = chessboard[i - ][j]; //保存上面路径到当前位置
][j] == -) && (chessboard[i][j - ] == -)) //若上面和左边都有马的控制点
chessboard[i][j] = ; //当前位置无通路
}
}
}
}
int main()
{
int i, j;
FILE *fp1, *fp2;
if ((fp1 = fopen("soldier.in", "r")) == NULL)
{
printf("不能打开文件!\n");
exit();
}
fscanf(fp1,"%d%d%d%d", &n, &m, &x, &y);
fclose(fp1);
horse(); //初始化马及其下一步的位置
search();
if ((fp2 = fopen("soldier.out", "w")) == NULL)
{
printf("不能打开文件!\n");
exit();
}
printf("%d\n", chessboard[n][m]);
fprintf(fp2,"%d\n",chessboard[n][m]);
fclose(fp2);
getch();
;
}
9-5 isbn.c
#include <stdio.h>
int main()
{
] = { "0123456789X" };
];
int i, j, sum;
FILE *fp1, *fp2;
if ((fp1 = fopen("isbn.in", "r")) == NULL)
{
printf("不能打开文件!\n");
exit();
}
fgets(str, , fp1); //从文件中读取数据
fclose(fp1); //关闭文件
sum = ;
j = ;
; i < ; i++) //计算总和
{
&& i != )
sum += (str[i] - ') * j++;
}
sum %= ; //求模
if ((fp2 = fopen("isbn.out", "w")) == NULL)
{
printf("不能打开文件!\n");
exit();
}
] == table[sum]) //校验码正确
{
fputs("Right", fp2); //输出到文件
printf("Right\n");
}
else //校验码错误
{
str[] = table[sum]; //保存正确校验码
fputs(str, fp2); //输出正确的ISBN到文件
printf("%s\n", str);
}
fclose(fp2); //关闭文件
getch();
;
}
9.1 NOIP普及组试题精解(2)的更多相关文章
- 9.1 NOIP普及组试题精解(3)
9-6 seat.c #include <stdio.h> #define MAXN 1001 void swap(int *a, int *b) //交换数据 { int t; t = ...
- 9.1 NOIP普及组试题精解(1)
9-1 series1.c #include <stdio.h> int main() { float s=0.0,k; int n; printf("输入数字k(1~15):& ...
- 9.2 NOIP提高组试题精解(2)
9-18 fruit.c #include <stdio.h> #define MAXN 10000 int Queue1[MAXN], Queue2[MAXN]; void Insert ...
- 9.2 NOIP提高组试题精解(1)
9-16 poise.c #include <stdio.h> #define MAXN 1001 int main() { ], flag[MAXN] = { }; //保存6种砝码的数 ...
- 2016.10.6初中部上午NOIP普及组比赛总结
2016.10.6初中部上午NOIP普及组比赛总结 中了病毒--病毒--病毒-- 进度: 比赛:AC+0+0+20=120 改题:AC+0+AC+20=220 Stairs 好--简--单!递推就过了 ...
- 2016.8.15上午纪中初中部NOIP普及组比赛
2016.8.15上午纪中初中部NOIP普及组比赛 链接:https://jzoj.net/junior/#contest/home/1333 这次比赛不怎么好,因为这套题目我并不是很擅长. 可同学们 ...
- 2016.9.15初中部上午NOIP普及组比赛总结
2016.9.15初中部上午NOIP普及组比赛总结 2016.09.15[初中部 NOIP普及组 ]模拟赛 又翻车了!表示时超和空超很可恨! 进度 比赛:AC+0+0+20=120 改题:AC+80+ ...
- 2016.9.10初中部上午NOIP普及组比赛总结
2016.9.10初中部上午NOIP普及组比赛总结 链接:https://jzoj.net/junior/#contest/home/1340 好不爽!翻车了!不过排名差不多在中间偏上一点, 还好不是 ...
- 2016.9.3初中部上午NOIP普及组比赛总结
2016.9.3初中部上午NOIP普及组比赛总结 链接:https://jzoj.net/junior/#contest/home/1339 这次真爽,拿了个第四!(我还被班主任叫过去1小时呢!) 进 ...
随机推荐
- FiddlerScript学习一:改动Request或Response
前两天因项目须要,简单看了一下FiddlerScript,功能挺强的.今天有时间细致看一下,做个笔记. 改动Request或Response 改动Request和Response要在FiddlerSc ...
- vue2.0 watch 详解
vue官网解释: 一个对象,键是需要观察的表达式,值是对应回调函数.值也可以是方法名,或者包含选项的对象.Vue 实例将会在实例化时调用 $watch(),遍历 watch 对象的每一个属性. 也就是 ...
- Android · PendingIntent学习
Intent 是及时启动,intent 随所在的activity 消失而消失 PendingIntent用于处理即将发生的事情.比如在通知Notification中用于跳转页面,但不是马上跳转. ...
- Vue.js 很好,但会比 Angular 或 React 更好吗?
文章转自:http://www.oschina.net/translate/vuejs-is-good-but-is-it-better-than-angular-or-rea Vue.js 是一个用 ...
- VueJS构造器:new Vue({})
构造器 每个 Vue.js 应用都是通过构造函数 Vue 创建一个 Vue 的根实例来启动的: var vm = new Vue({ // 选项 }) 属性与方法 每个 Vue 实例都会代理其 dat ...
- Android自动滚动 轮播循环的ViewPager
主要介绍如何实现ViewPager自动播放,循环滚动的效果及使用.顺便解决ViewPager嵌套(ViewPager inside ViewPager)影响触摸滑动及ViewPager滑动速度设置问题 ...
- MySQL系列:innodb源代码分析之线程并发同步机制
innodb是一个多线程并发的存储引擎,内部的读写都是用多线程来实现的,所以innodb内部实现了一个比較高效的并发同步机制. innodb并没有直接使用系统提供的锁(latch)同步结构,而是对其进 ...
- 汉字unicode码表范围和常用汉字unicode码
utf-8吗表中所有汉字的区间的正则表达式[\u4e00-\u9fa5] 汉字常用字unicode吗表String base ="\u7684\u4e00\u4e86\u662f\u6211 ...
- C#高级编程八十一天----捕获异常
捕获异常 前面主要说了关于异常的一些基础和理论知识,没有进入到正真的异常案例,这一讲通过几个案例来描写叙述一下异常的捕获和处理. 案例代码: using System; using System.Co ...
- JavaScript读书笔记(6)-Function
Function类型 ECMAScript中函数是对象,每个函数都是Function类型的实例,也有属性和方法,函数是对象,函数名实际上市一个指向函数对象的指针,不会与某个函数绑定: function ...