|
60鱼币
本帖最后由 陈尚涵 于 2024-10-7 18:21 编辑
很简单,以下有输出"Hello World"的代码(Python和C++),只需要大致描述代码原理即可
第一个答出来的丰厚奖励
Ps 10/13,也就是这周日晚检测答案
这里保证没有以下行为
1.任何破坏代码可读性的行为
2.任何奇怪的变量命名
3.任何不必要的多余操作(这里指一些无用的代码)
4.两个不同语言实现没有任何差异
给出代码:
C++
- #include<iostream>
- using namespace std;
- int rem[505],codes[]={439,659,543,547,986,145,657,876,347,874,474};
- int f(int x){
- if(rem[x]!=0)return rem[x];
- if(x<=1)return 1;
- rem[x]=f(x-1)+f(x-2);
- return rem[x];
- }
- int g(int x){
- int t=x;
- while(t){
- int cnt=1;
- while(f(cnt)<=t)cnt++;
- cnt--;
- t-=f(cnt);
- }
- return 2*x-t;
- }
- int trans(int x){
- if(x%10==9){
- if(x/100==4)return 14;
- else return 42;
- }else if(x%10==3)return 48;
- else if(x%10==7){
- if(x/100==5)return 48;
- else if(x/100==6)return 24;
- else return 49;
- }else if(x%10==6){
- if(x/100==9)return 50;
- else return 47;
- }else if(x%10==5)return -30;
- else if(x%10==4){
- if(x/100==8)return 42;
- else return 33;
- }
- }
- int main(){
- int j=58;
- bool k=false;
- for(int i=0;i<11;i++){
- char x;
- if(codes[i]%2==0)x=trans(g(codes[i]/2));
- else x=trans(g(codes[i]/2)+1);
- x+=j;
- if(!k&&j==60)k=true;
- else j++;
- cout<<x;
- }
- return 0;
- }
复制代码
Python
- rem = {}
- codes = [439,659,543,547,986,145,657,876,347,874,474]
- def f(x):
- try:
- return rem[x]
- except:
- if(x<=1):
- return 1
- rem[x]=f(x-1)+f(x-2)
- return rem[x]
- def g(x):
- t=x
- while(t):
- cnt=1;
- while f(cnt)<=t:
- cnt += 1
- cnt -= 1
- t-=f(cnt)
- return 2*x-t
- def trans(x):
- if x%10==9:
- if x//100==4:
- return 14
- else:
- return 42
- elif x%10==3:
- return 48
- elif x%10==7:
- if x//100==5:
- return 48
- elif x//100==6:
- return 24
- else:
- return 49
- elif x%10==6:
- if x//100==9:
- return 50
- else:
- return 47
- elif x%10==5:
- return -30
- elif x%10==4:
- if x//100==8:
- return 42
- else:
- return 33
- j=58
- k=False
- for i in range(11):
- x = None
- if codes[i]%2==0:
- x=trans(g(codes[i]//2))
- else:
- x=trans(g(codes[i]//2)+1)
- x+=j
- if not k and j==60:
- k=True
- else:
- j+=1
- print(chr(x),end='')
复制代码
这段代码是一个用Python编写的加密解密程序,经过分析,它的执行结果是输出字符串Hello World。
以下是详细的执行过程:
1. rem字典和codes列表:rem是用于存储斐波那契数列计算结果的字典,codes是一个包含编码数字的列表。
2. 函数f(x):这是一个计算斐波那契数列的函数,使用了递归和记忆化以提高效率。
3. 函数g(x):这个函数对输入的数字进行处理,但经过分析,实际上对于输入x,g(x)的结果是2*x。
4. 函数trans(x):这是一个转换函数,根据输入数字的特定特征(如个位数、百位数)返回一个特定的数字。
5. 主循环:遍历codes列表,对于每个编码数字,通过trans函数和一些计算,得到一个字符的ASCII码,然后累加一个动态变化的值j,最后通过chr函数将其转换为字符并输出。
具体到每个编码数字的处理:
1. 对于codes[0] = 439,通过trans函数得到14,加上j=58后得到72,对应字符'H'。
2. 按照类似的步骤,对每个编码数字进行处理,依次得到字符'e'、'l'、'l'、'o'、空格' '、'W'、'o'、'r'、'l'、'd'。
|
最佳答案
查看完整内容
这段代码是一个用Python编写的加密解密程序,经过分析,它的执行结果是输出字符串Hello World。
以下是详细的执行过程:
1. rem字典和codes列表:rem是用于存储斐波那契数列计算结果的字典,codes是一个包含编码数字的列表。
2. 函数f(x):这是一个计算斐波那契数列的函数,使用了递归和记忆化以提高效率。
3. 函数g(x):这个函数对输入的数字进行处理,但经过分析,实际上对于输入x,g(x)的结果是2*x。
4. 函数tra ...
|