NC200607. A-解锁专家
描述
输入描述
多测试数据样例,测试样例组数不超过10000;每组数据一行,一个数n(1 ≤ n ≤ 100)。
输出描述
每组数据输出一个数,满足条件的正整数x的个数取模433494437(即答案需要%433494437)
示例1
输入:
1
输出:
1
说明:
当n=1时,只有x=1满足条件。示例2
输入:
3
输出:
4
说明:
当n=3时,有x=1(001), x=2(010), x=4(100), x=5(101)共4种情况。Python3(3.5.2) 解法, 执行用时: 269ms, 内存消耗: 4180K, 提交时间: 2019-12-29 12:16:17
while 1: try: n=int(input()) except: break arr = [0 for _ in range(n+1)] arr[1]=1 for i in range(2,n+1): arr[i]=(arr[i-1]+arr[i-2]+1)%433494437 print(arr[n])
C++(clang++11) 解法, 执行用时: 23ms, 内存消耗: 488K, 提交时间: 2021-04-16 00:34:32
#include<iostream> using namespace std; int a[105]; int main(){ int n; a[1]=1; a[2]=2; for(int i=3;i<=100;i++){ a[i]=(a[i-1]+a[i-2]+1)%433494437; } while(cin>>n){ printf("%d\n",a[n]); } }
C(clang 3.9) 解法, 执行用时: 4ms, 内存消耗: 376K, 提交时间: 2019-12-29 13:36:15
#include <stdio.h> int main() { int a[101];a[1]=1;a[2]=2; int i; for(i=3;i<101;i++) a[i]=(a[i-1]+a[i-2]+1)%433494437; int n; while(~scanf("%d",&n)) printf("%d\n",a[n]); }
C++14(g++5.4) 解法, 执行用时: 9ms, 内存消耗: 380K, 提交时间: 2020-08-28 14:34:06
#include<bits/stdc++.h> using namespace std; int n,i=3,f[102]={0,1,2}; main() { for(i=3;i<102;i++) f[i]=(1+f[i-1]+f[i-2])%433494437; while(cin>>n) cout<<f[n]<<'\n'; }