c语言中assign是什么意思?assign
连续信号赋值c语言assign函数 , 是Verilogc语言assign函数的关键字c语言assign函数 , 不是C的关键字
c语言编程:从素数中找连续和不连续的最长的等差数列 。怎么办?"#includeiostream
#includeiomanip
using
namespace
std;
class
Series
//定义1个序列类来存放连续的等差序列的元素和长度
{
public:
Series(int
n)
//含有形参的构造函数
{
length=n;
a=new
int[n];
}
Series(){}
//不含有形参的构造函数
int
getlength()
//获得序列长度的函数
{
return
length;
}
void
assign(int
i,int
j)
//为序列中的每一个元素赋值的函数
{
a[i]=j;
}
void
print()
//打印序列中的每一个元素的函数
{
for(int
i=0;ilength;i++)
coutsetw(5)a[i];
}
void
set(int
n)
//为对象重置值的函数
{
length=n;
a=new
int[n];
}
private:
int
length;
int
*a;
};
void
main()
{
int
i,n,d=1,j=0,k=0,m=0,storage,countPnum=0,countSeries=0,length=1;
int
b[9999];
//用数组b来存放~10000的全部整数
for(i=0;i9999;i++)
b[i]=i+2;
for(n=2;n5001;n++)
//用筛选法得到全部素数
{
for(i=n+1;i10001;i++)
if(i%n==0)
b[i-2]=0;
}
for(i=0;i9999;i++)
{
if(b[i]!=0)
countPnum++;
}
int
*a=new
int[countPnum];
//用数组a来存放全部的素数
for(i=0;i9999;i++)
{
if(b[i]!=0)
{
a[k]=b[i];
k++;
}
}
/*求此序列中连续的最长的等差序列*/
for(i=0;icountPnum;i++)
//计算素数序列中连续的等差序列的个数countSeries
{
if((a[i+1]-a[i])==(a[i+2]-a[i+1]))
countSeries++;
}
int
*d1=new
int[countSeries];
//用数组d来存放每一个等差序列的长度
for(i=0;icountPnum;i++)
//计算每一个等差序列的长度
{
storage=i;
if((a[i+1]-a[i])==(a[i+2]-a[i+1]))
{
d1[j]=2;
while((a[i+1]-a[i])==(a[i+2]-a[i+1]))
{
i++;
if((i+2)countPnum-1)
break;
d1[j]++;
}
j++;
}
i=storage;
}
Series
*c1=new
Series[countSeries];
//用Series类数组来存放全部的等差序列及其长度
for(i=0,j=0;icountSeries;i++,j++)
c1[i].set(d1[j]);
j=0;
for(i=0;icountPnum;i++)
{
storage=i;
if((a[i+1]-a[i])==(a[i+2]-a[i+1]))
{
c1[m].assign(j++,a[i]);c1[m].assign(j++,a[i+1]);
while((a[i+1]-a[i])==(a[i+2]-a[i+1]))
{
c1[m].assign(j++,a[i+2]);
i++;
if((i+2)countPnum-1)
break;
}
m++;
}
i=storage;
j=0;
}
m=0;
for(i=0;icountSeries;i++)
//找到最长的等差序列的长度
{
if(mc1[i].getlength())
m=c1[i].getlength();
}
cout"此序列中连续的最长的等差序列是:"endl;
for(i=0;icountSeries;i++)
//打印长度最长的等差序列
{
if(c1[i].getlength()==m)
{
c1[i].print();
coutendl;
}
}
/*求此序列中不连续的最长的等差数列*/
for(d=2;d4999;d++)
//令公差d从到进行循环
{
for(i=0;icountPnum;i++)
//扫描素数序列中的全部数 , 找到符合公差大小的等差数列
{
if(a[i]+d*k-29998)
//防止下标越界
break;
else
{
while(b[a[i]+d*k-2])
//假如是素数,就继续进行扫描过程
推荐阅读
- sqlserver字段默认为为1,sql server字段默认为0
- oracle单独备份一条数据库,oracle数据库备份一张表
- 路由器买什么牌子的,路由器有哪些品牌
- 游戏射击怪物,射击打怪类冒险游戏
- linux777命令 linux7命令大全
- 格斗游戏直播游戏,格斗游戏直播平台
- java找人帮忙代码实现,java敲代码用什么软件
- c语言中的if函数问题 c语言中if函数的使用方法
- chatgpt完美简历,chatGpt简历筛选