[入门赛 #9] 牵连的世界 (Hard Version)题解
原题跳转
首先我们来读读题
题目大意:
给定
- 输出错误的结果
- 运行超时
- 产生一些运行时未定义行为
注:产生运行时未定义行为仅包括数组越界。
那么,我们先来看第一题
NO.1
给出
乍一看,好像有一个 % 运算符,这时有的同学就想:这有什么用呢?那我们就来看看它的作用。
在要求中, % 一个负数会得到一个正数,可是c++非要与众不同,一个正数 bug 特性来解决第一题。
那么第一题的代码如下:
if(n==1){
cout<<"1"<<endl;
cout<<"-1"<<endl;
}
接下来,我们来看第二题
NO.2
判定 与众不同的 int 。这让我们解决问题轻松了许多。
因为 int 的范围是
具体代码如下:
if(n==2){
cout<<"999999999989"<<endl;
}
然后,就是最后一题了
NO.3
给定
这时,代码里有了数组,有些同学立马想到了
但又一看,又发现了一个 int 。这时,同学们又会想怎样爆它呢?
然后,我们发现了 int 的,然后我们就只需输入两个大于 int 范围的数就行了。
具体代码如下:
if(n==3){
cout<<"2"<<endl;
cout<<"2000000000 2000000000"<<endl;
}
注:这是一道
AC Code
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
if(n==1){
cout<<"1"<<endl;
cout<<"-1"<<endl;
}
if(n==2){
cout<<"999999999989"<<endl;
}
if(n==3){
cout<<"2"<<endl;
cout<<"2000000000 2000000000"<<endl;
}
return 0;
}
本蒟蒻的第一篇题解,求管理员大大通过。。。
如果有什么不合规的地方请指出,本蒟蒻一定及时修改!