1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
新思路题

新思路题 1。【审题关键句】将大于整数m且紧靠m的k个素数存入数组。 【解题思路】 ①首先定义一个计数变量cnt并赋初值为0。 ②利用while循环统计大于整数m且紧靠m的k个素数,当计数变量cnt的值与变量k的值相等的时候,则退出while循环。每执行一次循环时,变量m的值加1,然后调用函数isP()判断当前的m值是否为素数,如果是素数,则将m的值赋给数组xx[cnt],同时计算变量cnt的值加1,即当数组xx[0]中保存了一个素数之后,在下一次素数判断成立时将保存到xx[1]的位置上,依次类推。 【参考答案】 int cnt = 0; //定义变量cnt并初值等于0 while(cnt k) //当cnt的值小于k时 { m++; //变量m加1 if(isP(m)) xx[cnt++] = m; //如果m为素数,则把其赋给数组元素xx[cnt],并且数组的下标cnt加1 } 2.【审题关键句】求素数的个数及平均值,并计算非素数的平均值。 【解题思路】 ①首先定义循环变量i,然后通过for循环对数组a[300]中的每个元素a[i]调用函数isP(a[i])判断a[i]是否是素数(素数的算法已在isP()函数中给出,此处直接调用即可),如果是素数,则把其加到变量pjz1上,同时计数变量cnt加1,否则a[i]值加到变量pjz2上。直到判断完数组a[300]中的所有数据后退出循环。 ②求出pjz1、pjz2和cnt的值之后,再用变量pjz1的值除以cnt的值就得到素数的平均值,同时把这个值赋给变量pjz1,最后用变量pjz2的值除以300-cnt的值就得到非素数的平均值,并把这个值赋给变量pjz2。 【参考答案】 int i; //定义变量i for(i = 0; i 300; i++) //循环变量i从0依次递增到299 { if(isP(a[i])) //判断数组元素a[i]是否素数 { pjz1 += a[i]; //把a[i]累加到变量pjz1 cnt++; //变量cnt加1 } else pjz2 += a[i]; //否则,把数组元素a[i]累加到变量pjz2 } pjz1 /= cnt; //所有素数的和pjz1除以素数的个数cnt,得到素数的平均值并赋给变量pjz1 pjz2 /= (300 - cnt); //所有非素数的和pjz2除以非素数的个数300-cnt,得到非素数的平均值并赋给变量pjz2 3.【审题关键句】100以内(含100)满足i、i+4、i+10都是素数的整数的个数以及这些i之和。 【解题思路】 ①首先定义循环变量i,然后将i的值赋初值为3,每循环一次则将i的值加1,直到i90。 ②在for循环中,每执行一次循环则调用函数isPrime()(该函数具体的算法已经在源程序中给出,直接调用即可),对i、i+4、i+10是否同时是素数进行判断,如果这三个数同时为素数,则计数变量cnt值加1,同将时将变量i的值累加到sum上。 【参考答案】 int i; //定义变量i for(i = 3; i 90; i++) //循环变量i从3开始,依次递增,直到小于90 { if(isPrime(i) isPrime(i + 4) isPrime(i + 10)) //如果i,i+4,5i+10同时为素数 { cnt++; sum += i; //变量cnt加1,变量i累加到sum } } 4.【审题关键句】求素数的个数,存入数组,按从小到大的顺序排序。 【解题思路】 ①首先定义两个循环变量循环i、j和一个用于数据交换的整型变量tmp。 ②通过for循环依次读取数组中的300个数,其中,循环变量i从0开始每次加1,直到i300停止循环;在每次循环中判断a[i]是否是素数,如果是素数,则把a[i]的值赋给数组b[cnt],同时数组下标变量cnt值加1。 ③在退出循环后,用两个for循环对数组b[]中元素进行两两比较,实现数组元素从小到大的排序,比较过程中通过整型变量tmp实现两个数的交换。 【参考答案】 int i, j, tmp; //定义整型变量i, j, tmp for(i = 0; i 300; i++) //循环变量i从0依次递增到299 if(isP(a[i])) b[cnt++] = a[i]; //如果数组元素a[i]是素数,则把a[i]赋给b[cnt],同时数组下标变量cnt加1 for(i = 0; i cnt; i++) //循环变量i从0开始依次递增,直到其值等于cnt { for(j = i + 1; j cnt; j++) //循环变量j从i + 1开始依次递增,直到其

文档评论(0)

sy78219 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档