排列问题
有n个人排成一队散步,第二天每个人都不想和前一天前面的人相同,多少种排列
n!-(n-1)(n-1)!+(n-2)(n-2)!-...1*1
模拟n=3
#include<iostream> #include<algorithm> #include<string.h> using namespace std; int main() { for(int i=1;i<=3;i++) for(int j=1;j<=3;j++) for(int k=1;k<=3;k++) { if(i==j||i==k||j==k||i==j-1||j==k-1) continue; else cout<<i<<" "<<j<<" "<<k<<endl; } return 0; }
组合数
#include<bits/stdc++.h> using namespace std; int calc(int n,int m) { if(m==1) return n; if(n==0) return 0; return calc(n-1,m-1)+calc(n-1,m); } //从n个物品里面取走m个 int main() { int n,m; cin>>n>>m; cout<<calc(n,m); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】