CF_225B _Well-known Numbers

本文深入探讨了k-Fibonacci数列的定义与性质,并提供了一个算法来表示给定数s为至少两个不同k-Fibonacci数的和。详细解释了如何通过迭代计算数列的值,以及如何从大到小逐步减去数列中的元素,直至s为0,确保输出的数列满足题目要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Numbers k-bonacci (k is integer, k > 1) are a generalization of Fibonacci numbers and are determined as follows

  • F(k, n) = 0, for integer n1 ≤ n < k;
  • F(k, k) = 1;
  • F(k, n) = F(k, n - 1) + F(k, n - 2) + ... + F(k, n - k), for integer nn > k.

Note that we determine the k-bonacci numbers, F(k, n), only for integer values of n and k.

You've got a number s, represent it as a sum of several (at least two) distinct k-bonacci numbers.

Input

The first line contains two integers s and k (1 ≤ s, k ≤ 109k > 1).

Output

In the first line print an integer m (m ≥ 2) that shows how many numbers are in the found representation. In the second line print mdistinct integers a1, a2, ..., am. Each printed integer should be a k-bonacci number. The sum of printed integers must equal s.

It is guaranteed that the answer exists. If there are several possible answers, print any of them.

题目背景是一个k—Fibonacci数列,也就是,第0,1项是1,然后后面的第i项为前面k项之和,即f[i]=f[i-1]+.....f[i-k],(i>=k+1),然后输入整数s,k,输出能使得加起来和为s的m(m>=2)个不同的k—Fibonacci数,1<=s<=10^9,k>1,考虑到k最小为2时,f[50]>=10^10,所以对于任意k,满足条件的整数不会超过10^9,只需要存储前50个就可以了。这样s依次减去小于它的最大Fibonacci值,直到s为0.

题目要求最少输出2个数,所以遇到恰好为Fibonacci数的s值,可以输出一个0。

代码:

 1 #include<stdio.h>
 2 #define max(a,b) ((a)>(b)?(a):(b))
 3 #define N 50
 4 typedef long long ll;
 5 ll f[N];
 6 int main(void)
 7 {
 8     int s,k;
 9     int i,j,ct=0;
10     ll ans[N];
11     scanf("%d%d",&s,&k);
12      f[0]=f[1]=1;
13      f[2]=2;
14     for(i=3;i<N;i++)
15     {
16         if(i>=k+1)
17             f[i]=2*f[i-1]-f[i-k-1];//i>=k+1,递推公式:f[i]=2*f[i-1]-f[i-k-1]
18         else for(j=i-1;j>=max(i-k,0);j--)
19             f[i]+=f[j];//否则f[i]为前面k项之和
20     }
21     for(i=N-1;i>0;i--)
22     {
23        if((s>=f[i]))
24         {
25             s-=f[i];
26             ans[ct++]=f[i];
27         }
28         if(s==0)
29         {
30             if(ct==1){
31                     printf("%d\n",ct+1);
32                 printf("0 ");
33             }
34             else printf("%d\n",ct);
35             for(i=0;i<ct;i++)
36                 printf("%I64d%c",ans[i],i==ct-1?'\n':' ');
37             return 0;
38         }
39     }
40         return 0;
41 }

 

 

(DepMamba) dw@node01:~/DepMamba-main$ conda uninstall pytorch torchvision torchaudio Channels: - defaults - conda-forge - nvidia - pytorch Platform: linux-64 Collecting package metadata (repodata.json): done Solving environment: done ## Package Plan ## environment location: /home/dw/anaconda3/envs/DepMamba removed specs: - pytorch - torchaudio - torchvision The following packages will be REMOVED: alsa-lib-1.2.14-h5eee18b_0 aom-3.9.1-hac33072_0 attr-2.5.1-h166bdaf_1 blas-1.0-mkl brotlicffi-1.0.9.2-py310h6a678d5_1 cairo-1.18.4-h3394656_0 cffi-1.17.1-py310h1fdaa30_1 charset-normalizer-3.3.2-pyhd3eb1b0_0 dav1d-1.2.1-h5eee18b_0 dbus-1.13.18-hb2f20db_0 expat-2.7.1-h6a678d5_0 ffmpeg-7.1.1-gpl_h0cf71c1_707 filelock-3.17.0-py310h06a4308_0 font-ttf-dejavu-sans-mono-2.37-hd3eb1b0_0 font-ttf-inconsolata-2.001-hcb22688_0 font-ttf-source-code-pro-2.030-hd3eb1b0_0 font-ttf-ubuntu-0.83-h8b1ccd4_0 fontconfig-2.15.0-h7e30c49_1 fonts-anaconda-1-h8fa9717_0 fonts-conda-ecosystem-1-hd3eb1b0_0 freetype-2.13.3-ha770c72_1 fribidi-1.0.10-h7b6447c_0 gdk-pixbuf-2.42.12-hb9ae30d_0 gettext-0.25.1-h3f43e3d_1 gettext-tools-0.25.1-h3f43e3d_1 glib-2.84.2-h6287aef_0 glib-tools-2.84.2-h4833e2c_0 gmp-6.3.0-h6a678d5_0 gmpy2-2.2.1-py310h5eee18b_0 graphite2-1.3.14-h295c915_1 harfbuzz-11.3.3-hbb57e21_0 idna-3.7-py310h06a4308_0 intel-openmp-2025.0.0-h06a4308_1171 jinja2-3.1.6-py310h06a4308_0 lame-3.100-h7b6447c_0 lcms2-2.17-h717163a_0 lerc-4.0.0-h6a678d5_0 level-zero-1.24.0-hb700be7_0 libabseil-20250512.1-cxx17_hba17884_0 libasprintf-0.25.1-h3f43e3d_1 libasprintf-devel-0.25.1-h3f43e3d_1 libass-0.17.4-h96ad9f0_0 libcap-2.75-h39aace5_0 libdeflate-1.23-h86f0d12_0 libdrm-2.4.124-h5eee18b_0 libegl-1.7.0-h5eee18b_2 libflac-1.4.3-h59595ed_0 libfreetype-2.13.3-ha770c72_1 libfreetype6-2.13.3-h48d6fc4_1 libgcrypt-lib-1.11.1-hb9d3cd8_0 libgettextpo-0.25.1-h3f43e3d_1 libgettextpo-devel-0.25.1-h3f43e3d_1 libgl-1.7.0-h5eee18b_2 libglib-2.84.2-h3618099_0 libglvnd-1.7.0-h5eee18b_2 libglx-1.7.0-h5eee18b_2 libgpg-error-1.55-h3f2d84a_0 libiconv-1.18-h4ce23a2_1 libjpeg-turbo-3.0.3-h5eee18b_0 libogg-1.3.5-h27cfd23_1 libopenvino-2025.2.0-hb617929_1 libopenvino-auto-batch-plugin-2025.2.0-hed573e4_1 libopenvino-auto-plugin-2025.2.0-hed573e4_1 libopenvino-hetero-plugin-2025.2.0-hd41364c_1 libopenvino-intel-cpu-plugin-2025.2.0-hb617929_1 libopenvino-intel-gpu-plugin-2025.2.0-hb617929_1 libopenvino-intel-npu-plugin-2025.2.0-hb617929_1 libopenvino-ir-frontend-2025.2.0-hd41364c_1 libopenvino-onnx-frontend-2025.2.0-h1862bb8_1 libopenvino-paddle-frontend-2025.2.0-h1862bb8_1 libopenvino-pytorch-frontend-2025.2.0-hecca717_1 libopenvino-tensorflow-frontend-2025.2.0-h0767aad_1 libopenvino-tensorflow-lite-frontend-2025.2.0-hecca717_1 libopus-1.5.2-hd0c01bc_0 libpciaccess-0.18-h5eee18b_0 libpng-1.6.50-h943b412_0 libprotobuf-6.31.1-h9ef548d_1 librsvg-2.58.4-he92a37e_3 libsndfile-1.2.2-hc60ed4a_1 libsystemd0-257.7-h4e0b6ca_0 libtiff-4.7.0-hd9ff511_3 libudev1-257.7-hbe16f8c_0 libunwind-1.6.2-h9c3ff4c_0 liburing-2.9-h84d6215_0 libusb-1.0.29-h73b1eb8_0 libva-2.22.0-h4f16b4b_2 libvorbis-1.3.7-h7b6447c_0 libvpx-1.14.1-hac33072_0 libwebp-base-1.6.0-hd42ef1d_0 libxcb-1.17.0-h9b100fa_0 libxkbcommon-1.10.0-h65c71a3_0 libxml2-2.13.8-h4bc477f_0 llvm-openmp-15.0.7-h0cdce71_0 lz4-c-1.10.0-h5888daf_1 markupsafe-3.0.2-py310h5eee18b_0 mkl-2025.0.0-hacee8c2_941 mkl-service-2.4.0-py310h5eee18b_3 mkl_fft-1.3.11-py310hacdc0fc_1 mkl_random-1.2.8-py310h2fd27a0_1 mpc-1.3.1-h5eee18b_0 mpfr-4.2.1-h5eee18b_0 mpg123-1.32.9-hc50e24c_0 mpmath-1.3.0-py310h06a4308_0 networkx-3.2.1-py310h06a4308_0 numpy-1.21.6-py310h64c44e4_2 numpy-base-1.21.6-py310he1678cf_2 openh264-2.6.0-he621ea3_0 openjpeg-2.5.3-h5fbd93e_0 packaging-25.0-py310h06a4308_0 pango-1.56.4-hadf4263_0 pcre2-10.45-hc749103_0 pillow-11.1.0-py310h7e6dc6c_0 pixman-0.46.4-h537e5f6_0 pthread-stubs-0.3-h0ce48e5_1 pugixml-1.15-h3f63f65_0 pulseaudio-client-17.0-hac146a9_1 pycparser-2.21-pyhd3eb1b0_0 pysocks-1.7.1-py310h06a4308_0 python_abi-3.10-8_cp310 pytorch-2.1.0-py3.10_cuda12.1_cudnn8.9.2_0 pytorch-mutex-1.0-cuda pyyaml-6.0.2-py310h5eee18b_0 requests-2.32.4-py310h06a4308_0 sdl2-2.32.54-h3f2d84a_0 sdl3-3.2.14-he3e324a_0 snappy-1.2.2-h03e3b7b_0 svt-av1-3.0.2-h5888daf_0 sympy-1.13.3-py310h06a4308_1 tbb-2022.0.0-hdb19cb5_0 tbb-devel-2022.0.0-hdb19cb5_0 torchaudio-2.1.0-py310_cu121 torchtriton-2.1.0-py310 torchvision-0.16.0-py310_cu121 typing_extensions-4.12.2-py310h06a4308_0 urllib3-2.5.0-py310h06a4308_0 wayland-1.24.0-hdac8c69_0 wayland-protocols-1.45-hd8ed1ab_0 x264-1!164.3095-h166bdaf_2 x265-3.5-h924138e_3 xkeyboard-config-2.44-h5eee18b_0 xorg-libice-1.1.2-h9b100fa_0 xorg-libsm-1.2.6-he73a12e_0 xorg-libx11-1.8.12-h9b100fa_1 xorg-libxau-1.0.12-h9b100fa_0 xorg-libxcursor-1.2.3-h9b100fa_0 xorg-libxdmcp-1.1.5-h9b100fa_0 xorg-libxext-1.3.6-h9b100fa_0 xorg-libxfixes-6.0.1-h9b100fa_0 xorg-libxrender-0.9.12-h9b100fa_0 xorg-libxscrnsaver-1.2.4-h9b100fa_0 xorg-xorgproto-2024.1-h5eee18b_1 yaml-0.2.5-h7b6447c_0 zstd-1.5.7-hb8e6e7a_2 Proceed ([y]/n)? y Preparing transaction: done Verifying transaction: done Executing transaction: | done (DepMamba) dw@node01:~/DepMamba-main$ 卸载完了吧
最新发布
07-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值