int* iNum[65535];
int iPos = 0;
void doWork(int iSum, int iNow)
{
int iStart = iNow;
iNum[iPos ++] = &iStart;
while(iSum - iStart > iStart)
{
doWork(iSum - iStart, iStart + 1);
for (int i=0; i<iPos; i++)
{
printf("%d + ", *iNum[i]);
}
printf("%d\n", iSum - iStart);
iStart ++;
}
iPos --;
}
int _tmain(int argc, _TCHAR* argv[])
{
char s[20] = {0};
scanf("%s", s);
int num = atoi(s);
doWork(num, 1);
getchar();
getchar();
return 0;
return 0;
}
【推荐】AI 的力量,开发者的翅膀:欢迎使用 AI 原生开发工具 TRAE
【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动,百万大奖等你挑战
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 行业思考:不是前端不行,是只会前端不行
· C#高级GDI+实战:从零开发一个流程图
· 2025年:是时候重新认识System.Text.Json了
· 源码浅析:SpringBoot main方法结束为什么程序不停止
· C#性能优化:为何 x * Math.Sqrt(x) 远胜 Math.Pow(x, 1.5)
· 独立开发在线客服系统,我是如何与杀毒软件误报斗智斗勇的
· 换成.NET 9,你的LINQ代码还能快上7倍
· AI 时代,为什么我们还有必要写博客?
· where 1 = 1的作用?会影响性能吗?count(*) 和 count(1)哪个快?
· 独立开发:这才过去一个月?