1856弗洛格
描述
青蛙弗洛格和它的妈妈是火星动物,在火星上,每年都有 12 个月,每个月的天数都是30天,每个月都是从1号开始,然后是2号,…,每月的最后一天都是30号。
弗洛格妈妈想考查一下弗洛格的数学水平,于是问道: “今天是几号?” ,弗洛格回答: “27 号!” , 妈妈说:“正确! ” 。妈妈接着问: “前 1 天是几号?” ,弗洛格回答: “26 号!太简单了!我 读一年级就会了! ” 。妈妈再问: “前 N 天是几号?” ,弗洛格皱起眉头: “这个有点难,我 要写个程序来算” 。由于弗洛格的编程水平一般,你能帮帮它吗?
输入
一个整数 N,表示妈妈问弗洛格,前 N 天是几号?
输出
一个整数。
输入样例 1
2
输出样例 1
25
输入样例 2
21
输出样例 2
6
这一题我们可以用一个月的天数减去(27-n)的差的绝对值求出输入天数大于26时的方法
小于26天时,直接输出26-n
代码:
1 #include<iostream> 2 #include<bits/stdc++.h> 3 using namespace std; 4 int main() 5 { 6 int n; 7 cin>>n; 8 if(n<=26) cout<<27-n; 9 if(n>=27) cout<<30-abs(27-n); 10 return 0; 11 }
我用这个代码提交之后十个数据点,只对了六个。这就说明程序有漏洞。
还有一个点必须要考虑进来,这一题输入的天数有可能大于60或以上,这个时候就需要修改一下代码。
代码:
1 #include<iostream> 2 #include<bits/stdc++.h> 3 using namespace std; 4 int main() 5 { 6 int n; 7 cin>>n; 8 if(n<=26) cout<<27-n; 9 if(n>=27) cout<<30-abs(27-n)%30; 10 return 0; 11 }
完工