luyencode / comments

Server lưu trữ bình luận trên Luyện Code
https://luyencode.net
6 stars 3 forks source link

https://oj.luyencode.net/problem/LC2 #817

Open utterances-bot opened 1 year ago

utterances-bot commented 1 year ago

Chi tiết bài tập - Luyện Code Online

https://oj.luyencode.net/problem/LC2

luuquyhop commented 1 year ago

Đây là lời giải của mình đã AC. Nếu bạn đã cố gắng mà chưa làm được thì có thể tham khảo lời giải của mình. c/c++

Xem code AC

```cpp #include using namespace std; int main() { int n; cin >> n; vector fibo; fibo.push_back(1); fibo.push_back(1); while (fibo.back() < n) { fibo.push_back(fibo[fibo.size() - 1] + fibo[fibo.size() - 2]); } int i = fibo.size() - 1; vector ans; while (n > 0) { if (n >= fibo[i]) { n -= fibo[i]; ans.push_back(fibo[i]); } --i; } cout << ans.size() << endl; for (int i = 0; i < ans.size(); ++i) { cout << ans[i] << " "; } return 0; }

KietBigDock2006 commented 1 year ago

Đây là lời giải của mình đã AC. Nếu bạn đã cố gắng mà chưa làm được thì có thể tham khảo lời giải của mình.

Xem code AC

program tongcacsofibo; var f, res: array[0..10000] of longint; i, n, d: longint; begin readln(n); f[0] := 1; f[1] := 1; i := 2; while f[i-1]+f[i-2] <= n do begin f[i] := f[i-1] + f[i-2]; inc(i); end; dec(i); while n > 0 do begin if n >= f[i] then begin inc(d); res[d] := f[i]; n := n - f[i]; end; dec(i); end; writeln(d); for i := 1 to d do write(res[i], ' '); end.

minibn23 commented 1 year ago

Các cao nhân chỉ giúp sao thuật toán như nhau mà trên c++ đúng 10/10 còn python câu trả lời sai ? def fibonacci_sum(n): fib = [1, 1] while sum(fib) < n: fib.append(fib[-1] + fib[-2]) f=[] i=len(fib)-1 while( n>0): if n>=fib[i]: n=n-fib[i] f.append(fib[i]) i=i-1 return f
N=int(input()) print(fibonacci_sum(N))