求C语言程序设计问题有20个石头,没人每次可拿1或2或3个石头,但每次拿完不能剩下素数个,请问怎么用C语言统计几种方法,
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/08/18 01:24:41
求C语言程序设计问题
有20个石头,没人每次可拿1或2或3个石头,但每次拿完不能剩下素数个,请问怎么用C语言统计几种方法,并写每次拿完剩下的石头数
有20个石头,没人每次可拿1或2或3个石头,但每次拿完不能剩下素数个,请问怎么用C语言统计几种方法,并写每次拿完剩下的石头数
![求C语言程序设计问题有20个石头,没人每次可拿1或2或3个石头,但每次拿完不能剩下素数个,请问怎么用C语言统计几种方法,](/uploads/image/z/3688946-26-6.jpg?t=%E6%B1%82C%E8%AF%AD%E8%A8%80%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E9%97%AE%E9%A2%98%E6%9C%8920%E4%B8%AA%E7%9F%B3%E5%A4%B4%2C%E6%B2%A1%E4%BA%BA%E6%AF%8F%E6%AC%A1%E5%8F%AF%E6%8B%BF1%E6%88%962%E6%88%963%E4%B8%AA%E7%9F%B3%E5%A4%B4%2C%E4%BD%86%E6%AF%8F%E6%AC%A1%E6%8B%BF%E5%AE%8C%E4%B8%8D%E8%83%BD%E5%89%A9%E4%B8%8B%E7%B4%A0%E6%95%B0%E4%B8%AA%2C%E8%AF%B7%E9%97%AE%E6%80%8E%E4%B9%88%E7%94%A8C%E8%AF%AD%E8%A8%80%E7%BB%9F%E8%AE%A1%E5%87%A0%E7%A7%8D%E6%96%B9%E6%B3%95%2C)
这个其实还是比较简单的,你使用递归做就可以了.我刚帮你写了一个,你看看.
#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;
}
以下是运行结果:
![](http://img.wesiedu.com/upload/7/11/711d68299ec1580345c9c25c7b25669d.jpg)
#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;
}
以下是运行结果:
![](http://img.wesiedu.com/upload/7/11/711d68299ec1580345c9c25c7b25669d.jpg)
求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粒,不可不拿,谁拿到最后一个算获胜,如果我先拿,为了确保获胜第一次