首页 > 代码库 > 虐我半下午的水题(ACdream无耻的出题人)
虐我半下午的水题(ACdream无耻的出题人)
对于这道题我只想说坑爹。绝对的坑爹。
还有这样出题的。。。。。
无耻的出题人
Problem Description
听到X神要参加比赛,只会Fibnacci数的出题人被吓得哭晕在厕所。为了防止X神AK(ALL KILL)比赛题目,无耻的出题人只好在题面上做些手脚(加密)。其中一道题的题目描述如下:
hjxh dwh v vxxpde,mmo ijzr yfcz hg pbzrxdvgqij rid stl mc zspm vfvuu vb uwu spmwzh.
比赛的时候X神对题面研究了四个多小时,终于发现了一丝规律,并且破解出了前四个单词hjxh dwh v vxxpde对应是:give you a number。但是比赛时间所剩不多,X神需要你的帮助(在解密题面之后帮他写一个可以ac的代码o(╯□╰)o)。
Input
输入包含多组数据。 每组数据一个数字n, n在long long范围内。
Output
对于每组测试数据,输出答案。
Sample Input
1 2 3 4 5 -1 -2
Sample Output
1 2 3 4 5 1 2
那个,,,首先是那段怪胎的英文。。我是没发现什么,因为2个h对应了2个不同的字母。。在度娘和tyvj群@澧、 有兰大牛帮助下。。终于理解了。。
题目开头的Fibnacci原来是这么用的。。。。。。。。
每一个密码字母的ascii码 减去对应位置的Fibnacci数值 再不断加减26 得到的答案转回字母就是原文
这么简单的意思我居然打了半天代码。。。
//逐字符翻译 #include<cstdio> #include<cstdlib> #include<iostream> #include<cstring> using namespace std; long long s; long long ans,i,n,b,c,d,k; char str[100]; char ch; long long a[10000]; int main() { a[0]=1; a[1]=1; for (i=2;i<=200;i++) a[i]=(a[i-1]+a[i-2])%26; gets(str); k=0; n=strlen(str); for (i=0;i<=n-1;++i) { ch=str[i]; if ((ch>‘z‘)||(ch<‘a‘)) {cout<<ch;} else { b=int(ch)-int(‘a‘)+1; b-=a[k]; b=b+int(‘a‘)-1; while (b<‘a‘) b+=26; while (b>‘z‘) b-=26; cout<<char(b); k++; } } return 0; }
然后就没有然后了,运行这个解密程序得到要做的事情:
(博客园真是过分,图片永远上不去,百度也是,图片不能共享!)
hjxh dwh v vxxpde,mmo ijzr yfcz hg pbzrxdvgqij rid stl mc zspm vfvuu vb uwu spmwzh
give you a number,and your task is calculating the sum of each digit in the number.(题目)
然后后面的事情。。似乎也忙了我一会儿。
突然很怀念Pascal的时光。。如果Pa我3分钟搞定了。可惜这个OJ不能用P。下次不做这个无聊的OJ了。。。。。。
#include<cstdio> #include<cstdlib> #include<iostream> #include<cstring> using namespace std; int main() { char s[100]; int a,ans,i,k; while (scanf("%s",s)!=EOF) { ans=0; for (i=0;i<=strlen(s);i++) { if ((s[i]<=‘9‘)&&(s[i]>=‘0‘)) ans+=int(s[i])-int(‘0‘); } cout<<ans<<endl; } return 0; }
RunID | User | Problem | Verdict | Time | Memory | Lang | Length | Submit Time |
---|---|---|---|---|---|---|---|---|
14803 | seekdreamer | 1069 | Accepted | 20 MS | 1672 KB | C++ | 352 B | 2014-06-09 23:10:53 |
总结2:C++判断文件结束:1.while (cin>>) 不推荐。。这题就是因为用cin死了,改成scanf就过了
2.while(scanf( ) != EOF) (这是柯嵩宇大神教的吧。。)
不要乱用cin。。。。