C++第七次实验-素数和回文
2016-06-02 16:07
316 查看
一、上机目的
掌握函数的应用
二、问题及代码
编制2个返回值为int型的函数,用于判断参数是否为素数和回文,调用函数回答以下问题
(1)输出300以内的所有素数。
(2)输出300以内的所有回文数。
(3)输出300以内的所有回文素数。
(4)若一个素数的反序数仍为素数,则称它为可逆素数。求300以内的所有可逆素数。
四、知识点总结
函数的传值调用和引用调用
五、心得体会
感觉前面循环和数组的知识非常重要也非常有用
掌握函数的应用
二、问题及代码
编制2个返回值为int型的函数,用于判断参数是否为素数和回文,调用函数回答以下问题
(1)输出300以内的所有素数。
(2)输出300以内的所有回文数。
(3)输出300以内的所有回文素数。
(4)若一个素数的反序数仍为素数,则称它为可逆素数。求300以内的所有可逆素数。
/* * 文件名称:素数和回文 * 作 者: 吴奇峰 * 完成日期: 2016 年 6 月 2 日 * 版 本 号:v1.0 * 对任务及求解方法的描述部分:函数、循环、数组。 * 输入描述: 无 * 问题描述: 求素数、回文数、回文素数、可逆素数 * 程序输出: 输出300以内所有素数、回文数、回文素数、可逆素数 * 问题分析: 略 * 算法设计: 略 */ #include<iostream.h> int sushu(int n) //判断素数函数 { for(int i=2;i<n;i++) { if(n%i==0) //判断是否能整除 break; } if(i==n) //若i==n,则只能整除1和其本身,为素数 return 1; //标记为1 else return 0; //否则标记为0 } int huiwenshu(int n) //生成回文数函数 { int m=0; while(n) //当n不等于0时执行循环 { m=m*10+n%10; //m逐步进位 n/=10; //n除以10直到等于0 } return m; //返回回文数 } void main() { int i,j=0,k=0,m=0,n=0,s,h,g; int a[100],b[100],c[100],d[100]; //定义四种情况的数组 for(i=2;i<=300;i++) //2~300依次判断 { s=sushu(i); //取素数标记 h=huiwenshu(i); //取回文数 g=sushu(h); //判断回文数是否为素数 if(s==1) //为素数,存入a数组 { a[j]=i; j++; } if(h==i) //为回文数,存入b数组 { b[k]=i; k++; } if(h==i&&s==1) //为回文素数,存入c数组 { c[m]=i; m++; } if(g==1&&s==1) //为可逆数组,存入d数组 { d =i; n++; } } cout<<"300以内所有素数为:"<<endl; for(i=0;i<j;i++) //输出素数 cout<<a[i]<<" "; cout<<endl; cout<<"300以内所有回文数为:"<<endl; for(i=0;i<k;i++) //输出回文数 cout<<b[i]<<" "; cout<<endl; cout<<"300以内所有回文素数为:"<<endl; for(i=0;i<m;i++) //输出回文素数 cout<<c[i]<<" "; cout<<endl; cout<<"300以内所有可逆素数为:"<<endl; for(i=0;i<n;i++) //输出可逆素数 cout<<d[i]<<" "; cout<<endl; }三、运行结果
四、知识点总结
函数的传值调用和引用调用
五、心得体会
感觉前面循环和数组的知识非常重要也非常有用
相关文章推荐
- [leetcode] 【链表】141. Linked List Cycle
- C语言inline详细讲解
- C++实验7—特殊三位数
- LeetCode 33. Search in Rotated Sorted Array
- C语言中空格,空字符,字符数组结束符的区别
- C语言之内存对齐浅谈
- Python与C++交互
- LeetCode 153. Find Minimum in Rotated Sorted Array
- 标准C++中的string类的用法总结
- c++ vector begin(),end(),rbegin(),rend()问题
- C语言实现字符串的查找和替换
- 第10周 C语言及程序设计提高例程-38 main函数的参数
- C++ 引用
- 链接库(血泪史)
- C++中auto型的详细解释
- 小范围排序(C++)
- C语言+SDL2 图形化编程
- C/C++程序员必须熟练应用的开源项目
- C语言练习篇-5二维数组行列交换及找最大值
- 图 单源最短路径求解 Dijkstra算法 C++ 实现