求C语言程序设计问题有20个石头,没人每次可拿1或2或3个石头,但每次拿完不能剩下素数个,请问怎么用C语言统计几种方法,并写每次拿完剩下的石头数
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 11:57:18
![求C语言程序设计问题有20个石头,没人每次可拿1或2或3个石头,但每次拿完不能剩下素数个,请问怎么用C语言统计几种方法,并写每次拿完剩下的石头数](/uploads/image/z/1078802-26-2.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%E5%B9%B6%E5%86%99%E6%AF%8F%E6%AC%A1%E6%8B%BF%E5%AE%8C%E5%89%A9%E4%B8%8B%E7%9A%84%E7%9F%B3%E5%A4%B4%E6%95%B0)
求C语言程序设计问题有20个石头,没人每次可拿1或2或3个石头,但每次拿完不能剩下素数个,请问怎么用C语言统计几种方法,并写每次拿完剩下的石头数
求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;
}
以下是运行结果: