codeforces-320A-Magic Numbers

简介: http://codeforces.com/problemset/problem/320/A A magic number is a number formed by concatenation of numbers 1, 14 and 144. We can use each of these numbers any number of times. Therefore 14

http://codeforces.com/problemset/problem/320/A

A magic number is a number formed by concatenation of numbers 1, 14 and 144. We can use each of these numbers any number of times. Therefore 14144, 141414 and 1411 are magic numbers but 1444, 514 and 414 are not.

You're given a number. Determine if it is a magic number or not.

Input

The first line of input contains an integer n, (1 ≤ n ≤ 109). This number doesn't contain leading zeros.

Output

Print "YES" if n is a magic number or print "NO" if it's not.

Sample test(s)
Input
114114
Output
YES
Input
1111
Output
YES
Input
441231
Output
NO

思路:
1、 除了1和4不允许出现其他数字。
2、 4的前2位数只可能是14、41或者11
 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 int main()
 5 {
 6     int n,flag=1;
 7     scanf("%d",&n);
 8     while(n)
 9     {
10         if(n%10==4)
11         {
12             n/=10;
13             if(n%10==4)
14             {
15                 n/=10;
16                 if(n%10!=1)
17                     flag=0;
18             }
19             else if(n%10==1)
20                 n/=10;
21             else
22                 flag=0;
23         }
24         else if(n%10==1)
25             n/=10;
26         else
27             flag=0;
28         if(flag==0)
29         {
30             printf("NO\n");
31             break;
32         }
33     }
34     if(n==0 && flag==1)
35         printf("YES\n");
36     return 0;
37 }
View Code

 

目录
相关文章
|
8月前
|
算法 Java 程序员
C++函数式魔法之旅(Journey of Functional Magic)
C++函数式魔法之旅(Journey of Functional Magic)
101 1
codeforces 339 D.Xenia and Bit Operations(线段树)
输入n,m表示有2^n个数和m个更新,每次更新只把p位置的值改成b,然后输出整个序列运算后的值,而这个运算就比较复杂了, 最下面一层两个数字之间或运算得到原来数目一半的数字,然后两个之间异或运算,得到一半,再或再异或………………,一直到得到一个数字,这个数字就是要求的结果。
58 0
|
机器学习/深度学习 C++
【PAT甲级 - C++题解】1128 N Queens Puzzle
【PAT甲级 - C++题解】1128 N Queens Puzzle
79 1
|
存储 算法
PAT (Basic Level) Practice (中文) B1018. 锤子剪刀布
PAT (Basic Level) Practice (中文) B1018. 锤子剪刀布
140 0
PAT (Basic Level) Practice (中文) B1018. 锤子剪刀布
Codeforces 1554C - Mikasa MEX
input output 给出n,m从n ^ 0 -> n ^ m中最小为出现的非负整数
105 0
Codeforces 1554C - Mikasa MEX
HDOJ/HDU 1075 What Are You Talking About(字符串查找翻译~Map)
HDOJ/HDU 1075 What Are You Talking About(字符串查找翻译~Map)
145 0
|
缓存 搜索推荐 Java
令人匪夷所思的 Magic 之魔数,你真的不会
试想一下你现在有个业务场景需要你识别出各种类型的文件,然后进行不同的处理,这些文件不管是用户上传还是怎么来的,你都需要知道文件是什么类型,比如是一张 JPG 图片,还是一个 GIF 图片又或者是 PDF 等等其他类型的文件。这个时候你会想,这还不简单么,几行 Java 代码就搞定了。