NC232002. 铁三角
描述
输入描述
输入一行一个整数 。
输出描述
输出两行,第一行一个整数 表示你所构造的序列的长度。
接下来一行 个整数为你所构造的序列 。
示例1
输入:
2
输出:
3 1 1 2
C 解法, 执行用时: 3ms, 内存消耗: 384K, 提交时间: 2021-12-18 20:00:42
#include<stdio.h> int main() { long long int n; long long int a[10000]; int m=0; int i,j; scanf("%lld",&n); a[0]=1; a[1]=1; i=1; while(a[i]<=n) { i++; a[i]=a[i-1]+a[i-2]; } printf("%d\n",i); for(j=0;j<=i-1;j++) printf("%lld ",a[j]); }
C++ 解法, 执行用时: 4ms, 内存消耗: 656K, 提交时间: 2021-12-18 19:05:22
#include<bits/stdc++.h> #define ll long long using namespace std; ll a[100],n,m; int main(){ scanf("%lld",&n); a[1]=a[2]=1;m=2; while(a[m]<=n) m++,a[m]=a[m-1]+a[m-2]; printf("%lld\n",m-1); for(int i=1;i<m;i++) printf("%lld ",a[i]); }
Python3 解法, 执行用时: 39ms, 内存消耗: 4624K, 提交时间: 2021-12-18 19:05:36
n = int(input()) ans = [1,1,2] while ans[-1]<=n: ans.append(ans[-1]+ans[-2]) ans.pop() print(len(ans)) print(' '.join(str(v) for v in ans))
Python2 解法, 执行用时: 16ms, 内存消耗: 3072K, 提交时间: 2022-01-09 23:07:35
m=int(input()) a=[1,1] cnt=2 while a[-1]+a[-2]<=m: a.append(a[-1]+a[-2]) cnt+=1 ans=' '.join(map(str,a)) print(cnt) print(ans)