华师一附中OI组

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 888|回复: 5
打印 上一主题 下一主题

20210811网课第三题 求c(m,n)

[复制链接]

738

主题

1485

帖子

5420

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5420
跳转到指定楼层
楼主
发表于 2021-8-11 09:11:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
m n<=1000
回复

使用道具 举报

0

主题

5

帖子

39

积分

新手上路

Rank: 1

积分
39
沙发
发表于 2021-8-11 17:50:20 | 只看该作者
  1. #include <bits/stdc++.h>//失败的程序
  2. using namespace std;
  3. int m[1010],n[1010],a[10000],c[10000],d[10000];
  4. string sum;
  5. string gaocheng(string s,int x)
  6. {
  7.         s="1";
  8.         int l=s.size(),k=0,x1=0;
  9.         for (int i=0;i<l;i++)
  10.         a[i]=s[l-1-i]-'0';
  11.         while (x>0)
  12.         {
  13.                 c[k]=x%10;
  14.                 k++;
  15.                 x/=10;
  16.         }
  17.         for (int i=0;i<k;i++)
  18.         {
  19.                 x1=0;
  20.                 for (int j=0;j<l;j++)
  21.                 {
  22.                         d[i+j]=d[i+j]+x+a[l-1-j]*c[i];
  23.                         x=d[i+j]/10;
  24.                         d[i+j]%=10;
  25.                 }
  26.                 d[i+l-1]=x;
  27.         }
  28.         for (int i=0;i<l+k;i++)
  29.         s[i]=d[l+k-i]+'0';
  30.         memset(a,0,10000);
  31.         memset(c,0,10000);
  32.         memset(d,0,10000);
  33.         return s;
  34. }//不会把高精度函数的值用字符串的形式返回出来(总之就是感觉函数写错了,但不知道是怎么错了)
  35. int main()
  36. {
  37.         int m1,n1,temp1,temp2;
  38.         cin>>m1>>n1;
  39.         temp1=m1;
  40.         temp2=n1;
  41.         for (int i=1; i<=n1; i++)
  42.         {
  43.                 m[i]=m1;
  44.                 m1--;
  45.         }
  46.         for (int i=1; i<=temp2; i++)
  47.         {
  48.                 n[i]=n1;
  49.                 n1--;
  50.         }
  51.         m1=temp1;
  52.         n1=temp2;
  53.         for (int i=1; i<=n1; i++)
  54.         {
  55.                 for (int j=1; j<=n1; j++)
  56.                 {
  57.                         if (m[j]%n[i]==0)
  58.                         {
  59.                                 m[j]=m[j]/n[i];
  60.                                 break;
  61.                         }
  62.                 }
  63.         }
  64.         for (int i=1; i<=n1; i++)
  65.                 sum=gaocheng(sum,m[i]);
  66.         cout<<sum;
  67.         return 0;
  68. }
复制代码
回复 支持 反对

使用道具 举报

0

主题

5

帖子

39

积分

新手上路

Rank: 1

积分
39
板凳
发表于 2021-8-11 17:52:10 | 只看该作者
  1. #include <bits/stdc++.h>//低精度
  2. using namespace std;
  3. int m[1000],n[1000];
  4. int main()
  5. {
  6.         int m1,n1,temp1,temp2,sum=1;
  7.         cin>>m1>>n1;
  8.         temp1=m1;
  9.         temp2=n1;
  10.         for (int i=1; i<=n1; i++)
  11.         {
  12.                 m[i]=m1;
  13.                 m1--;
  14.         }
  15.         for (int i=1; i<=temp2; i++)
  16.         {
  17.                 n[i]=n1;
  18.                 n1--;
  19.         }
  20.         m1=temp1;
  21.         n1=temp2;
  22.         for (int i=1; i<=n1; i++)
  23.         {
  24.                 for (int j=1; j<=n1; j++)
  25.                 {
  26.                         if (m[j]%n[i]==0)
  27.                         {
  28.                                 m[j]=m[j]/n[i];
  29.                                 break;
  30.                         }
  31.                 }
  32.         }
  33.         for (int i=1; i<=n1; i++)
  34.                 sum=sum*m[i];
  35.         cout<<sum;
  36.         return 0;
  37. }
复制代码
回复 支持 反对

使用道具 举报

0

主题

2

帖子

27

积分

新手上路

Rank: 1

积分
27
地板
发表于 2021-8-11 18:35:27 | 只看该作者
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int m,n;//c(m,n)
  4. const int mn=5000;
  5. long long a[mn],b[mn],c[mn],i,f,e;
  6. int main()
  7. {
  8.         cin>>m>>n;
  9.         for(i=m-n+1;i<=m;i++)
  10.         a[i]=i;
  11.         for(int k=1;k<=n;k++)
  12.         b[k]=k;
  13.         for(i=m-n+1;i<=m;i++)
  14.         for(int k=1;k<=n;k++)
  15.                 if(a[i]%b[k]==0)
  16.                 {
  17.                         a[i]/=b[k];
  18.                         b[k]=1;
  19.             }
  20.            int g=0;c[0]=1;f=0;//到第几位
  21.             for(i=m-n+1;i<=m;i++)
  22.             {
  23.                     for(e=0;e<=g;e++)
  24.                     c[e]*=a[i];
  25.                     if(c[e]>9)
  26.                     {
  27.                             c[e+1]+=c[e]/10;
  28.                             c[e]%=10;
  29.                             f++;
  30.                         }
  31.                 }
  32.                 for(int k=f;k>=0;k--)
  33.                 cout<<c[k];
  34.                 return 0;
  35. }
复制代码
回复 支持 反对

使用道具 举报

0

主题

1

帖子

27

积分

新手上路

Rank: 1

积分
27
5#
发表于 2021-8-13 10:26:34 | 只看该作者
活学活用
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int n,m;
  4. int a[10010];
  5. void pp()
  6. {
  7.         for(int i=1;i<=n;i++)
  8.         cout<<a[i]<<" ";
  9.         cout<<endl;
  10. }
  11. void c(int i)
  12. {
  13.         if(i>n)
  14.         pp();
  15.         else
  16.         for(int k=a[i-1]+1;k<=m;k++)
  17.         {
  18.                 a[i]=k;
  19.                 c(i+1);
  20.         }
  21. }
  22. int main()
  23. {
  24.         cin>>m>>n;
  25.         a[0]=0;
  26.         c(1);
  27.         return 0;
  28. }
复制代码
回复 支持 反对

使用道具 举报

738

主题

1485

帖子

5420

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5420
6#
 楼主| 发表于 2021-8-13 20:35:46 | 只看该作者
楼上好牛 ! 可是你这个只能算到10
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|服务支持:DZ动力|华师一附中OI组  

GMT+8, 2024-11-2 12:29 , Processed in 0.222462 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表