3344. 送命题

10175101282Mercury
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void rev_str(char s[]){ //反转字符串
    int c,i,j;
    for (i = 0, j = strlen(s) - 1; i < j; i++, j--){
        c = s [i];
        s[i] = s[j];
        s[j] = c;
    }
}

int fib(int n){
    char str1[10], str2[10];
    if (n == 1 || n == 2) return 1;
    if (n <= 7) return fib(n - 1) + fib(n - 2);
    else {
            sprintf(str1, "%d", fib(n - 1));
            sprintf(str2, "%d", fib(n - 2));
            rev_str(str1);rev_str(str2);
            return atoi(str1)+atoi(str2);
    }
}

int main()
{
    int n;
    scanf("%d", &n);


    printf("%d\n", fib(n));
    return 0;
}
Saitama

我觉得不太对吧。。。。。

10175101282Mercury

Iccanobif numbers

10175102262 LarsPendragon

研究完毕,这题有毒

10175102262 LarsPendragon

答案正被作为标本研究中……

Fifnmar

EOJ 上总是有这种没有描述让你猜的题,也不知道是为了模拟一些无理取闹的小对象儿还是为了考验黑客们猜题的能力。有趣的是这种题有时候还挺热……

题意:Rev_fibonacci: $a_n=rev(a_{n-1})+rev(a_{n-2})$,其中 $rev(n)$ 为数 $n$ 的反转数。

e.g.: $rev(123489)=984321$。

代码:

#include "bits/stdc++.h"
using namespace std;

uint64_t rev_num(uint64_t num) {
    string temp = to_string(num);
    reverse(temp.begin(), temp.end());
    return stoull(temp);
}

int main() {
    uint64_t revfib[32]{0, 1, 1}, n;
    cin >> n;
    for (int i = 3; i <= n; ++i)
        revfib[i] = rev_num(revfib[i - 1]) + rev_num(revfib[i - 2]);
    cout << revfib[n];
}
10175101244

超链接 这里

beginning.

damn
F**k

Rookie菜鸟

不是f数列吗

BeyondWang

wtf??

MadCreeper

wtf?

RubbishCheShiuan

没看懂

RudeusG

0, 1, 1, 2, 3, 5, 8, 13, 39, 124, 514, 836, 1053, 4139, 12815, 61135, 104937, 792517, 1454698, 9679838, 17354310, 9735140, 1760750, 986050, 621360, 113815, 581437, 1252496, 7676706, 13019288, 94367798, 178067380

蒟蒻

哈哈哈好题好题

Rookie菜鸟

不是fibo数列吗

chamodsd

include

using namespace std;

define N 100

long long f(int);
long long reverse(long long);

int main(){
int n;
cin >> n;
if(n==1 || n==2){cout << 1;}
else if(n==3){cout << 2;}
else{cout << f(n);}
return 0;
}

long long f(int n){
int i;
long long temp1,temp2,res;
temp1=1;
temp2=1;
for(i=3;i<=n;i++){
if(i%2==0){
temp2=reverse(temp2);
temp1+=temp2;
res = temp1;
}
else{
temp1=reverse(temp1);
temp2+=temp1;
res = temp2;
}
}
return res;
}

long long reverse(long long temp){
long long res=0;
int i=0;
int j=0;
int a[N]={0};
while(temp!=0){
a[i]=temp%10;//注意从a[0]开始计数
temp/=10;
i++;
}
while(i!=0){
temp+=a[i-1]*pow(10,j);
i–;
j++;
}
return temp;
}

ACMerWithIronMedal

????斐波那契数列WA

Master X

我研究了一上午的fibo数列。。。

你当前正在回复 博客/题目
存在问题!