发布网友 发布时间:2022-04-30 15:58
共3个回答
热心网友 时间:2022-06-26 22:19
程序编好了,我又加了一个*,法术值不能重复,因为一个精灵只有一种法术值,并只能死一次。所以你的样例中不能都是3。其他的要求都做到了。如果你非要你那种样例输出的(即法术值可以重复)等我考完试再说。在vc++ 6.0上编程。
#include<iostream.h>
#include<math.h>
main()
{
int array3[684];
int array2[684];
int array[5133];
array[1]=2;
int ch;int m,k,l=1;
int num2,num3,foobar,geshu,jilu,panan;
cout<<"请输入一个数:";
cin>>ch;
int n,j,sum=0;
int i=2;
for(n=3;n<=50000;n+=2)
{
for(j=2;j<=sqrt(n);j++)
{
if((n%j)==0) break;
}
if(j>sqrt(n))
{
array[i]=n;
i++;
sum=sum+1;
}
}
array2[0]=array[2];
for(m=3;m<=5195;m+=2)
{
for(k=2;k<=sqrt(m);k++)
{
if((m%k)==0) break;
}
if(k>sqrt(m))
{
array2[l]=array[m];
l++;
}
}
num2=8;
num3=0;
foobar=ch;
geshu=0;
jilu=8;
panan=1;
int record1,record2;
int biao;
record2=foobar;
while(panan)
{
record1=foobar;
foobar=foobar-array2[num2];
if(foobar>0)
{
array3[num3]=array2[num2];
num3++;
geshu=geshu+1;
}
if(foobar<0){foobar=record1;}
if(foobar==0){geshu++;array3[num3]=array2[num2];panan=0;}
num2--;
if((num2==-1)&&(foobar!=0)){biao=-1;}
if(biao==-1){jilu--;num2=jilu;foobar=record2;num3=0;geshu=0;biao=2;}
if(jilu==-1){panan=0;cout<<"-1"<<endl;}
}
cout<<"个数为:"<<geshu<<endl;
if(biao!=-1)for(int a=geshu-1;a>=0;a--)cout<<array3[a]<<" ";cout<<endl;
}
热心网友 时间:2022-06-26 22:19
我觉得相同超级魔法的精灵有N只热心网友 时间:2022-06-26 22:20
同学。。这个自己想想吧。