作业帮 > 综合 > 作业

求C语言程序设计问题有20个石头,没人每次可拿1或2或3个石头,但每次拿完不能剩下素数个,请问怎么用C语言统计几种方法,

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/30 06:59:16
求C语言程序设计问题
有20个石头,没人每次可拿1或2或3个石头,但每次拿完不能剩下素数个,请问怎么用C语言统计几种方法,并写每次拿完剩下的石头数
求C语言程序设计问题有20个石头,没人每次可拿1或2或3个石头,但每次拿完不能剩下素数个,请问怎么用C语言统计几种方法,
这个其实还是比较简单的,你使用递归做就可以了.我刚帮你写了一个,你看看.
#include<stdio.h>
#include<math.h>

int count = 0;
int sum[20];

bool is_P(int n)
{
\x05int i;
\x05if(n<2)
\x05\x05return false;
\x05for(i=2;i*i<=n;i++)
\x05\x05if(n%i == 0)
\x05\x05\x05return false;
\x05return true;
}

void st(int n)
{
\x05int i;
\x05if(n == 0)
\x05{
\x05\x05for(i=0;i<count;i++)
\x05\x05\x05printf("%3d",sum[i]);
\x05\x05printf("\n");
\x05\x05return;
\x05}
\x05for(i=1;i<4&&i<=n;i++)
\x05\x05if(is_P(n-i) == false)
\x05\x05{
\x05\x05\x05sum[count] = n-i;
\x05\x05\x05count++;
\x05\x05\x05st(n-i);
\x05\x05\x05count--;
\x05\x05}
\x05return;
}

void main()
{
\x05st(20);
\x05return;
}
以下是运行结果:



求C语言程序设计问题有20个石头,没人每次可拿1或2或3个石头,但每次拿完不能剩下素数个,请问怎么用C语言统计几种方法, 有25个苹果,两人轮流拿每次只能拿1个、2个或3个.谁拿最后一个谁就赢,为了让自己获胜是先拿还是后拿?拿多少?之后怎样拿 有一箱皮球,每次拿6个,每次拿15个,每次拿20个,都正好拿完,这项皮球至少有多少个 有25个苹果,两个人轮流拿每次只能拿1个,2个或3个,谁拿到最后一个谁就赢.想一想,为了确保自己赢 怎么 1:有25个苹果,两个人轮流拿,每次只能拿1个,2个或3个,谁拿到最后一个谁就赢.为了确保自己能够获胜,是应该先拿还是后 每次拿1个桃子1个桔子 最后剩下50个桔子,如果每次拿1个桃子3个桔子 最后剩下50个桃子 求共多少 步 有25个苹果,两个人轮流拿,每次只能拿1个,2个或3个,谁拿到最后一个谁就赢.想一想,为了确保自己能够获胜,是应该先拿还 六年级数学题有一道数学题是:一筐桔子大约有350个,每次拿3个,每次拿4个,每次拿5个都正好拿完,问这筐桔子有多少个?不 25个苹果,两个人轮流拿,每次只能拿1个、2个或3个,谁拿到最后一个谁就赢,想一想为了确保自己获胜,是应 一箱书,每次拿2本,每次拿3本,每次拿4本,每次拿5本,每次拿6本,每次拿7本,每次拿8本都正好拿完,求这箱书最少有多少 用C语言程序编程有3个白球,5个红球,6个黑球;每次拿8个球有多少种方法且至少要有一个红球 分棋子-智力题有21个棋子,两人轮流拿,每次可拿1到3粒,不可不拿,谁拿到最后一个算获胜,如果我先拿,为了确保获胜第一次