对于这道题我只想说坑爹。绝对的坑爹。
还有这样出题的。。。。。
无耻的出题人
Time Limit: 2000/1000
MS (Java/Others) Memory Limit: 65536/32768
KB (Java/Others)
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。。。。