集合M定义如下:
(1)1∈M;
(2)x∈M→2x+1∈M,3x+1∈M;
(3)再无别的数属于M;
试求集合M的元素从小到大排序的第n个元素;
1.枚举设计求解:
该题有2x+1和3x+1 两个递推关系,加大了程序设计难度;
(1)设计要点;
设置变量i:i从2开始递增1取值,若i可有已有的项m(j)用两个递推关系之一堆得,即满足条件i=2*m(j)+1或i=3*m(j)+1,说明i是m数列中的一项,赋值给m(k);
(2)枚举程序设计;
#include<stdio.h>
int main()
{
int n,k,j;
long i,m[10000];
printf("请输入整数n:");
scanf("%d",&n);
m[1]=1;
k=1;
i=1;
while(k<n)
{
i++;
for(j=1;j<=k;j++)
if(i==2*m[j]+1 || i==3*m[j]+1)
{
k++;
m[k]=i; /*判