[Offer收割]编程练习赛38 题目1 : 漏写的数字
来源:互联网 发布:javascript map对象 编辑:程序博客网 时间:2024/05/22 02:02
题目1 : 漏写的数字
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
- 样例输入
9111213
- 样例输出
10
描述
小A今年刚上幼儿园,正在学习写100以内的数字。幼儿园的老师留了一项作业,要求小A从某个100以内的数X开始一直写到另一个100以内的数Y(Y - X > 1)。
不过粗心的小A在作业中漏写了一个整数(好在小A漏写的不是X,并且至少写下了2个整数)。给定小A写下的数字串,你能求小A漏写的数字是多少吗?
输入
一个只包含数字的字符串。注意小A至少写下了两个数。
输出
小A漏写的数字。
整场比赛就做出了一道题...掩面而泣...
这个没用什么算法,那我为什么要写博客呢?
因为我交了好几次90/100,好不容易AC了当然要记录一下啦~~~
一定要好好考虑891011的情况,坑死我了...再次掩面而泣...
(代码很乱...不要介意...)
#include <stdio.h>#include <string.h>int main(){char a[1001];int i,j,b,flag=0,res;scanf("%s",a);b=strlen(a);if(b==2){if(a[0]-'0'+1==a[1]-'0')res=a[1]-'0'+1;elseres=a[0]-'0'+1;}else if(b==3){if(a[0]-'0'+1==a[1]-'0'&&a[1]-'0'+1==a[2]-'0')res=a[2]-'0'+1;else if(a[0]=='9'&&a[1]=='1'&&a[2]=='0')res=11;else if(a[0]=='9'&&a[1]=='1'&&a[2]=='1')res=10;else{if(a[0]-'0'+2==a[1]-'0')res=a[0]-'0'+1;else if(a[1]-'0'+2==a[2]-'0')res=a[1]-'0'+1;else if(a[0]=='8'&&a[1]=='1')res=9;}}else{j=-1;//123456if(((a[0]-'0'+1==a[1]-'0'||a[0]-'0'+2==a[1]-'0')&&(a[1]-'0'+1==a[2]-'0'||a[1]-'0'+2==a[2]-'0'))||(a[0]=='8'&&a[1]=='9')||a[0]=='9'||a[0]=='8'){for(i=0;i<b;i++){if(flag)break;if(a[i]+1==a[i+1]&&a[i]!='9'){j=i+2;continue;}else if(a[i]=='8'){if(a[i+1]=='9'&&i+1==b-1){flag=1;res=10;}if(a[i+1]=='1'&&a[i+2]=='0'){flag=1;res=9;}}else if(a[i]=='9'){if(i==b-3){if(a[b-1]=='1'){flag=1;res=10;}if(a[b-1]=='0'){flag=1;res=11;}}else if(i<b-2){if(a[i+1]=='1'&&a[i+2]=='0')break;else if(a[i+1]=='1'&&a[i+2]=='1'){flag=1;res=10;}}else if(i==b-1&&flag==0){flag=1;res=10;}break;}else if(a[i]-'0'+2==a[i+1]-'0'){flag=1;res=a[i]-'0'+1;}}}//101112if(flag==0){int x[105],o=0;if(j==-1)j=0;if(j==b){res=a[b-1]-'0'+1;flag=1;}for(i=j;i<b;i+=2){x[o++]=(a[i]-'0')*10+(a[i+1]-'0');}for(i=0;i<o;i++){//printf("%d**\n",x[i]);if(x[i]+1==x[i+1])continue;else if(x[i]+2==x[i+1]){flag=1;res=x[i]+1;break;}}if(flag==0)res=x[o-1]+1;}}printf("%d\n",res);}
阅读全文
0 0
- [Offer收割]编程练习赛38 题目1 : 漏写的数字
- [Offer收割]编程练习赛38 题目1 : 漏写的数字【打表】
- 漏写的数字 hihoCoder[Offer收割]编程练习赛38/hihoCoder1649
- 【Offer收割】编程练习赛38 —— 漏写的数字
- hihoCoder[Offer收割]编程练习赛1题目解析
- 【Offer收割]编程练习赛15-题目1 : 偶像的条件】
- [Offer收割]编程练习赛1
- hiho[Offer收割]编程练习赛1
- hihoCoder[Offer收割]编程练习赛2题目解析
- [offer收割]编程练习赛3-题目2:机会渺茫
- hihoCoder[Offer收割]编程练习赛3题目解析
- [Offer收割]编程练习赛27:题目2 : 两个机器人
- [Offer收割]编程练习赛6 题目1 : Playfair密码表 (密码学——模拟)
- [Offer收割]编程练习赛29 题目1 : 逃离迷宫4
- [Offer收割]编程练习赛25:偶树的切分
- [Offer收割]编程练习赛1 hihocoder 1268 九宫 (DFS)
- 2016 [Offer收割]编程练习赛3
- [Offer收割] 编程练习赛3
- ConcurrentHashMap与HashTable的区别
- main方法中访问内部类
- EasyDemo*Conversion to Dalvik format failed with wrror 1?(it's work)
- 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如5+55+555+5555+55555(此时共有5个数相加),几个数相加有键盘控制。
- 第十三周 ——项目二 “二叉树排序树中查找的路径”
- [Offer收割]编程练习赛38 题目1 : 漏写的数字
- Numpy-argsort函数
- 区分级数收敛和数列收敛
- 用java创建一个游戏窗口
- 判断一个数是否为质数/素数——从普通判断算法到高效判断算法思路
- 打印左对齐的三角形
- 升级tensorflow报连接出错,解决办法
- 第7章 数据规整化:清理、转换、合并、重塑 (1)
- springMVC 的工作原理和机制