2012程序设计竞赛基础实训81

合集下载

程序设计实训实验报告(热门20篇)

程序设计实训实验报告(热门20篇)

程序设计实训实验报告(热门20篇)c语言是在国内外广泛使用的一种计算机语言。

其语言功能丰富、表达能力强、使用灵活方便、既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件。

其功能强大,不仅用在计算机上广泛用在电子,机械等方面上,而且,所有的windows,unix,linux,mac,os/2,无一例外,哪一个不是c 语言写的?很多新型的语言如,c++,java,c,j,perl...都是衍生自c语言。

掌握了c语言,可以说你就掌握了很多门语言。

学习c程序这门课一年了,这是我们学的第一门专业课,在大学里c语言不但是计算机专业的必修课程而且也是非计算机专业学习计算机基础的一门必修课程。

所以作为我这个计算机专业的学生来说当然十分重要,老师在第一节课说过,c语言是计算机的基础,大多数软件都需要用c语言来编写,通过一个年的学习,使我由初步掌握简单的应试知识到完成高难度的深入编程,如我们在编写一个较大的程序时应该把它分开成几个小程序来看,这样会容易得多。

同时,我觉得c语言应该是操作和理论相结合的课程,在不断地编写中去思考,两者是不可分割的。

在学习一年c语言的过程中我也在慢慢探索怎样才能学好c语言,并总结了一点经验:要了解c语言就要从语法规为基础来学习起,首先要是要了解它的结构,比如变量,首先要了解变量的定义方式(格式),其意义是什么(定义变量有什么用);其次就是要我要怎么去运用它(我要用什么型式去应用它)。

在c语言的命令行中所有的语句都是有它自己的一定格式和形式出现在我们面前,所以我们在学习某种语句或命令时你首先要了解的就是它的规则是什么、有什么用、怎么实现等。

这些都是语法基础也是c语言的基础如果把它们都了解很好了,那么你编起程序来就很得心应手了。

比如说ifelse和switchcase这两种条件语句都是用来判断执行功能的,那我要什么时侯用if什么时侯用switch呢?如果你很好地了解它们的结构和作用的话那么就知道:若它的条件分支是多个而且条件的值是整数或是一个字符值时就会选switch而不会选if。

程序设计基础的实训报告

程序设计基础的实训报告

一、实训目的本次实训旨在通过实际编写程序,巩固和加深对程序设计基础知识的理解,提高编程能力和解决问题的能力。

通过实训,使学生能够掌握程序设计的基本流程,熟悉常用编程语言和开发工具,具备独立编写程序、调试和优化程序的能力。

二、实训内容1. 编程语言:C语言2. 开发工具:Visual Studio3. 实训任务:(1)编写一个计算两个整数相加的程序;(2)编写一个计算两个整数相减的程序;(3)编写一个计算两个整数相乘的程序;(4)编写一个计算两个整数相除的程序,要求考虑除数为0的情况;(5)编写一个计算阶乘的程序;(6)编写一个冒泡排序的程序,对一组整数进行排序;(7)编写一个插入排序的程序,对一组整数进行排序;(8)编写一个选择排序的程序,对一组整数进行排序。

三、实训过程1. 编写计算两个整数相加的程序```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("两数之和为:%d\n", sum); return 0;}```2. 编写计算两个整数相减的程序```c#include <stdio.h>int main() {int a, b, sub;printf("请输入两个整数:");scanf("%d %d", &a, &b);sub = a - b;printf("两数之差为:%d\n", sub); return 0;}```3. 编写计算两个整数相乘的程序```c#include <stdio.h>int main() {int a, b, mul;printf("请输入两个整数:");scanf("%d %d", &a, &b);mul = a b;printf("两数之积为:%d\n", mul);return 0;}```4. 编写计算两个整数相除的程序,考虑除数为0的情况```c#include <stdio.h>int main() {int a, b, div;printf("请输入两个整数:");scanf("%d %d", &a, &b);if (b == 0) {printf("除数不能为0\n");} else {div = a / b;printf("两数之商为:%d\n", div);}return 0;}```5. 编写计算阶乘的程序```c#include <stdio.h>int factorial(int n) {if (n == 0) {return 1;} else {return n factorial(n - 1);}}int main() {int n;printf("请输入一个整数:");scanf("%d", &n);printf("%d的阶乘为:%d\n", n, factorial(n)); return 0;}```6. 编写冒泡排序的程序```c#include <stdio.h>void bubbleSort(int arr[], int n) {int i, j, temp;for (i = 0; i < n - 1; i++) {for (j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) {temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}int main() {int arr[] = {5, 3, 8, 6, 2};int n = sizeof(arr) / sizeof(arr[0]); int i;bubbleSort(arr, n);printf("排序后的数组:");for (i = 0; i < n; i++) {printf("%d ", arr[i]);}printf("\n");return 0;}```7. 编写插入排序的程序```c#include <stdio.h>void insertionSort(int arr[], int n) {int i, j, key;for (i = 1; i < n; i++) {key = arr[i];j = i - 1;while (j >= 0 && arr[j] > key) { arr[j + 1] = arr[j];j--;}arr[j + 1] = key;}}int main() {int arr[] = {5, 3, 8, 6, 2};int n = sizeof(arr) / sizeof(arr[0]); int i;insertionSort(arr, n);printf("排序后的数组:");for (i = 0; i < n; i++) {printf("%d ", arr[i]);}printf("\n");return 0;}```8. 编写选择排序的程序```c#include <stdio.h>void selectionSort(int arr[], int n) { int i, j, min_idx, temp;for (i = 0; i < n - 1; i++) {min_idx = i;for (j = i + 1; j < n; j++) {if (arr[j] < arr[min_idx]) { min_idx = j;}}temp = arr[min_idx];arr[min_idx] = arr[i];arr[i] = temp;}}int main() {int arr[] = {5, 3, 8, 6, 2};int n = sizeof(arr) / sizeof(arr[0]);int i;selectionSort(arr, n);printf("排序后的数组:");for (i = 0; i < n; i++) {printf("%d ", arr[i]);}printf("\n");return 0;}```四、实训心得通过本次实训,我深刻体会到了程序设计的重要性。

《visualbasic程序设计》实训与习题指导

《visualbasic程序设计》实训与习题指导

《visualbasic程序设计》实训与习题指

Visual Basic程序设计是一种快速有效的应用程序开发方式,它拥有丰富的功能,可以实现复杂的应用程序开发。

Visual Basic程序设计的实训和题指导可以帮助初学者快速掌
握Visual Basic的基本原理和技巧,从而更好地掌握开发技能。

首先,在研究Visual Basic程序设计之前,应先掌握
Visual Basic编程语言的基本知识,包括语法、程序结构、数
据类型、控件、函数等,并熟练掌握Visual Basic的编程环境。

其次,在实训过程中,可以通过实际操作,更加深入地了解Visual Basic的基本原理和关键技术,并能够熟练操作
Visual Basic的调试工具,使其能够更好地检查程序的运行情况。

此外,在题指导过程中,可以通过解决许多实际问题,进一步加深对Visual Basic的理解,熟练掌握Visual Basic程序
设计的实际技术,并能够独立解决实际问题。

最后,在Visual Basic程序设计的实训和题指导过程中,
应多加练,不断的完善自己的技能,使自己能够熟练的操作Visual Basic,并能够更好地运用Visual Basic程序设计技术满
足开发需求。

总之,Visual Basic程序设计的实训和题指导可以帮助初学者更快地掌握Visual Basic的基本原理和技巧,从而更好地掌握开发技能,使其能够熟练地操作Visual Basic,并能够更好地运用Visual Basic程序设计技术满足开发需求。

12级-程序设计基础实训题目

12级-程序设计基础实训题目

2. 实验前的准备工作
回顾并复习实验中涉及的相关内容,上机实验前熟悉实验设计的知识,完成程序结构的设计工作, 准备好调试和运行时所需的测试数据,包括各类输入数据及正确的输出数据。
3. 关于实验报告的说明
(1)按照附录中的模板书写实验报告; (2)报告主体只有程序清单的实验报告以不及格报告评分并登记成绩; (3)认定为内容雷同的实验报告(包括内容完全相同、个别句子作少量修改等情况) ,以不及格报告 评分并登记成绩。
第 4页 共 21页
程序设计基础实训 单元实验
单元实验一 实验目的:熟悉 C 语言的文件操作
【问题描述】
需要长期保存的数据可以文件方式存储在外存上,C 语言提供了一组文件操作函数:fopen、fclose、 fgets、fputs、fgetc、fputc、fscanf、fprintf、fread、fwrite、rewind、fseek、feof 等,应了解这些函数的用 法并加以应用。
第 5页 共 21页 "a" "rb" "wb" "ab" Append to a text file Open a binary file for reading Create a binary file for writing Append to a binary file "a+" "rb+" "wb+" "ab+" Open a text file for read/write Open a binary file for read/write Create a binary file for read/write Open a binary file for read/write

程序设计实训报告(9篇)

程序设计实训报告(9篇)

程序设计实训报告(9篇)【导语】程序设计实训报告怎么写出亮点?整理了9篇优秀的《程序设计实训报告》通用版范文,有规范的开头结尾写法和标准的书写格式。

是您写出深受大家欢迎的综合报告抱负参考模板,盼望对您有所关心。

【第1篇】程序设计实训报告程序设计实训报告1一,实训目的:加深对可视化编程技术基本学问的理解,把握运用vb开发应用程序的基本方法及基本技巧。

二,实训时间:20xx年10月20xx年11月三,实训方式:上机操作四,实训类容:这次在杨立雄老师的带领下,利用vb开发工具与数据库sql开发一个使用的小型管理信息系统。

我选择了学籍管理系统。

它的功能要求如下:1,学籍信息输入:实现同学基本状况的输入。

包括各个同学的状况,姓名,家庭号码,家庭住址,学号等各个信息。

2,学籍信息管理:本模块实现了信息的修改,删除,查询。

还有个人信息。

把信息统计这个繁琐的工作简洁化,为同学信息的管理方面提高工作效率。

3,学籍信息查询:通过输入学号便可以查询到这个同学的全部信息,包括姓名,性别,诞生年月,班级,入学日期,联系电话,嘉奖和成果表都一目了然,很大的便利了教工们查询同学信息的过程。

4,统计查询:实现查询全班人数,男女生比例等。

五,实训体会:这次实训,感觉既好玩又有些辛苦。

这还是老师担忧我们适应不了所以没教那么多学问,即使这样我们仍学到了比以前上学时更多的学问,而且这些学问有好多都是我们自己去领悟的到的。

我也知道有人比我们更累,所以我自觉得还是挺好的。

经过这次的实训,我真真实切的感受到了计算机在我们生活中工作中的运用,这些软件,程序能让我们提高工作的效率,更直观更便捷切入主题。

这次我们学习的是数据源的原理及应用的各方面学问,由老师带着我们不断操作。

vb能有效的组织,管理和共享数据库信息,能把数据库信息与ado结合在一起,实现数据库信息的共享。

同时,vb概念清楚,简洁易学,使用。

是适合企业管理人员,数据库管理员使用的首选。

2012年软件设计大赛初赛题

2012年软件设计大赛初赛题

对一个方阵转置,就是把原来的行号变列号,原来的列号变行号例如,如下的方阵:1 2 3 45 6 7 89 10 11 1213 14 15 16转置后变为:1 5 9 132 6 10 143 7 11 154 8 12 16但,如果是对该方阵顺时针旋转(不是转置),却是如下结果:13 9 5 114 10 6 215 11 7 316 12 8 4下面的代码实现的功能就是要把一个方阵顺时针旋转。

void rotate(int* x, int rank){int* y = (int*)malloc(___________________); // 填空for(int i=0; i<rank * rank; i++){y[_________________________] = x[i]; // 填空}for(i=0; i<rank*rank; i++){x[i] = y[i];}free(y);}int main(int argc, char* argv[]){int x[4][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};int rank = 4;rotate(&x[0][0], rank);for(int i=0; i<rank; i++){for(int j=0; j<rank; j++){printf("%4d", x[i][j]);}printf("\n");}return 0;}请分析代码逻辑,并推测划线处的代码。

答案写在“解答.txt”文件中注意:只写划线处应该填的内容,划线前后的内容不要抄写。

假设有两种微生物X 和YX出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。

一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。

程序设计竞赛基础实训

程序设计竞赛基础实训

2012年程序设计竞赛基础实训22 1解不等式nm 161514131211±+-++-+< 其中m 为从键盘输入的正整数,式中符号为二个“+”号后一个“-”号,即分母能被3整除时为“-”。

输入正整数m ,输出满足不等式的n 。

测试数据: (1) m=4 (2) m=7设计要点1:式中出现减运算,导致不等式的解可能分段。

设置条件循环,每三项(包含二正一负)一起求和,得一个区间解。

然后回过头来一项项求和,得个别离散解。

为叙述方便,记nn s 161514131211)(±+-++-+= (1) 通过循环知s(d+1)>m ,且n=d+1为“-”,可得n=d 为一个解;而n=d+2时1.0/(n+3)为“+”,可得s(d+2)>m 。

以后各项中,“-”项小于其前面的“+”项,可知对于n>d+2有s(n)>m 成立。

因而有区间解:n ≥d(2) 在n<d 时是否有解,逐个求和检验确定离散解。

这一步不能省,否则出现遗解。

程序设计1:// 解不等式:m<1+1/2-1/3+1/4+1/5-1/6+...+-1/n#include <stdio.h>void main(){ long d,n,m,k 。

double s 。

printf("\n 请输入m: ")。

scanf("%d",&m)。

n=-2。

s=0。

while(s<=m){ n=n+3。

s=s+1.0/n+1.0/(n+1)-1.0/(n+2)。

}d=n+1。

s=0。

// 可确定区间解n ≥d (1) for(k=1。

k<=n 。

k++){ if(k%3>0) s=s+1.0/k 。

else s=s-1.0/k 。

if(s>m) printf(" n=%ld, ",k)。

2012年青岛市程序设计竞赛试117

2012年青岛市程序设计竞赛试117

2012年青岛市程序设计竞赛试题(小学组)说明:1、必须以题目中规定的文件名进行保存,并用FTP上传到指定文件夹中,FTP上传在试题最后。

请选手每做完一道题及时上传一次,以确保无因机器故障引起的文件丢失。

2、比赛时间为:60分钟,试题100分。

3、使用竞赛规定的文件格式输入、输出。

第一题火柴盒(程序文件名a1.pas,25分)小林今年刚上一年级,最近开始学数学的加法。

老师给他出了这样一道题:火柴盒长为L,宽为W(1<=L,W<=100)。

高度有一层楼这么高,火柴只能按长或宽的方式放进去,给小林了N(1<=N<=50)根火柴,知道一根火柴的长度,问有多少跟火柴可以放进该火柴盒。

你能用计算器帮小林解决这个问题吗?输入(a1.in):第一行,三整数N,L和W用空格隔开;接下来N行每行输入一个1到1000范围内的一个整数,表示火柴的长度。

输出(a1.out):一行整数,能够装进火柴盒的火柴数量。

样例1:输入:5 3 484219输出:3第二题数据统计(程序文件名a2.pas,25分)小林最近想研究末尾有0的整数的性质。

小林给出任一整数N,请你帮小林算出这个整数末尾共有多少个连续的0?输入(a2.in):一行,一个整数N(1<=N<=1000000000)。

输出(a2.out):一行统计出N的末尾连续0 的个数。

样例1:输入:50100输出:2样例2:输入:102304输出:0第3题购文具(程序文件名a3.pas,25分)“六一”儿童节“文具套装”优惠销售,三种购买方式如下:1、现购:10元/套,超过2套以为的,9元/套,超过10套以外的,则7.5元/套;2、网购:9元/套,超过10套,全部按网购每套的价钱打8折;超过5套,则全部按网购每套的价钱六折;3、团购:10元起团购,6元/套,达到或超过50套,则5元/套,达到或超过100套,则4元/套。

小林想用其中一种方式购n套文具,请你帮他计算应付多少元钱?输入(a3.in):一行,两个用空格隔开的整数,分别表示购买方式号(1,2,3)和套数n(n<=200)输出(a3.out):一行,一个整数,应付饭钱(小数部分四舍五入)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2012程序设计竞赛基础实训8239 台球碰撞在平面直角坐标系下,台球桌是一个左下角在(0,0),右上角在(L,W)的矩形。

有一个球心在(x,y),半径为R的圆形母球放在台球桌上(整个球都在台球桌内)。

受撞击后,球沿极角为b的射线(即:x正半轴逆时针旋转到此射线的角度为b)以初速度v飞出。

因球与桌面的磨擦,球作的加速度为a的匀减速率运动,每次碰到球桌边框时均发生完全弹性碰撞(反射角等于入射角)。

试求球停止时球心所在位置。

输入: l=180,w=120,x=35,y=40,r=5,b=30,v=27,a=6原题:在平面直角坐标系下,台球桌是一个左下角在(0,0),右上角在(L,W)的矩形。

有一个球心在(x,y),半径为R的圆形母球放在台球桌上(整个球都在台球桌内)。

受撞击后,球沿极角为a的射线(即:x正半轴逆时针旋转到此射线的角度为a)飞出,每次碰到球桌时均发生完全弹性碰撞(球的速率不变,反射角等于入射角)。

如果球的速率为v,s个时间单位之后球心在什么地方?输入输入文件最多包含25组测试数据,每个数据仅一行,包含8个正整数L,W,x,y,R,a,v,s(100<=L,W<=105, 1<=R<=5, R<=x<=L-R, R<=y<=W-R, 0<=a<360, 1<=v,s<=105),含义见题目描述。

L=W=x=y=R=a=v=s=0表示输入结束,你的程序不应当处理这一行。

输出对于每组数据,输出仅一行,包含两个实数x, y,表明球心坐标为(x,y)。

x和y应四舍五入保留两位小数。

设计要点:(1)确定球心区域设球心座标为(x,y),则有球心矩形区域:x1≤x≤x2,y1≤y≤y2其中:x1=r,x2=l-r; y1=r,y2=w-r(2)没撞击时球位置设开始时球心位于(x0,y0),球沿极角为a的射线射出,球的速率为v,s个时间单位之后球心在(x,y):x=x0+v*s*cos(a*3.14159/180)y=y0+v*s*sin(a*3.14159/180)(3)撞击轴对称若球与右竖边(x2)撞击,撞击后横月座标为:x=2*x2-x若球与上横边(y2)撞击,撞击后纵月座标为:y=2*y2-y程序设计:// 台球碰撞#include <math.h>#include<stdio.h>void main(){double l,w,r,a,v,s,x,y,x1,x2,y1,y2;printf(" 请确定球台边框(l,w): "); scanf("%lf,%lf",&l,&w);printf(" 请确定球心开始位置(x,y): ");scanf("%lf,%lf",&x,&y);printf(" 请确定球半径r: "); scanf("%lf",&r);printf(" 请确定射击角度a: "); scanf("%lf",&a);printf(" 请确定射击速度v: "); scanf("%lf",&v);printf(" 请确定时间s: "); scanf("%lf",&s);x1=r;x2=l-r;y1=r;y2=w-r;x=x+v*s*cos(a*3.1415926/180);y=y+v*s*sin(a*3.1415926/180);while(x<x1 || x>x2 || y<y1 || y>y2){if(x>x2) x=2*x2-x;if(x<x1) x=2*x1-x;if(y>y2) y=2*y2-y;if(y<y1) y=2*y1-y;}printf(" 所求位置为:(%.2f,%.2f).\n",x,y);}请确定球台边框(l,w): 130,110请确定球心开始位置(x,y): 30,40请确定球半径r: 5请确定射击角度a: 30请确定射击速度v: 20请确定时间s: 20所求位置为:(113.59,40.00).引申:在平面直角坐标系下,台球桌是一个左下角在(0,0),右上角在(L,W)的矩形。

有一个球心在(x,y),半径为r的圆形母球放在台球桌上(整个球都在台球桌内)。

受撞击后,球沿极角为b的射线(即:与正半轴逆时针旋转到此射线的角度为b)以初速度v飞出。

因球与桌面的磨擦,球作的加速度为a的匀减速率运动,每次碰到球桌边框时均发生完全弹性碰撞(反射角等于入射角)。

试求球停止时球心所在位置。

解:球作的初速度为v0,加速度为a的匀减速率运动,设t时刻球的速度为vt,则vt=v0-a*t停止时vt=0,则运行时间为:t=v0/a球运行距离为s=v0*t-a*t*t/2=v0*v0/2/a// 台球碰撞#include <math.h>#include<stdio.h>void main(){double l,w,r,a,b,v,s,x,y,x1,x2,y1,y2;printf(" 请确定球台边框(l,w): "); scanf("%lf,%lf",&l,&w);printf(" 请确定球心开始位置(x,y): "); scanf("%lf,%lf",&x,&y);printf(" 请确定球半径r: "); scanf("%lf",&r);printf(" 请确定射击角度b: "); scanf("%lf",&b);printf(" 请确定射击初速度v: "); scanf("%lf",&v);printf(" 请确定匀减速的加速度a: "); scanf("%lf",&a);x1=r;x2=l-r;y1=r;y2=w-r;s= v*v/2/a;x=x+s*cos(b*3.1415926/180);y=y+s*sin(b*3.1415926/180);while(x<x1 || x>x2 || y<y1 || y>y2){if(x>x2) x=2*x2-x;if(x<x1) x=2*x1-x;if(y>y2) y=2*y2-y;if(y<y1) y=2*y1-y;}printf(" 球停止时球心所求位置为:(%.2f,%.2f).\n",x,y);}请确定球台边框(l,w): 180,120请确定球心开始位置(x,y): 35,40请确定球半径r: 5请确定射击角度b: 30请确定射击初速度v: 27请确定匀减速的加速度a: 6球停止时球心所求位置为:(87.61,70.37).40 守形数若正整数n是它平方数的尾部,则称n为守形数,又称同构数。

例如,6是其平方数36的尾部,•76是其平方数5776的尾部,6与76都是守形数。

试求出指定区间[x,y]内所有守形数。

测试数据:(1) x=10,y=10000, 输出:(2) x=10000,y=1000000,输出:1. 常规求解(1) 设计要点对指定范围[x,y]内的每一个整数a(约定a>1),求出其平方数s;计算a的位数w,同时计算b=10^w,a的平方s的尾部c=s%b;比较a,c,若a=c则输出守形数。

(2)程序实现// 求[x,y]内的守形数#include<stdio.h>void main(){long int a,b,c,k,s,x,y;printf(" 求区间[x,y]中的守形数.");printf(" 请输入整数x,y:");scanf("%ld,%ld",&x,&y);for(a=x;a<=y;a++){ s=a*a; // 计算a的平方数sb=1;k=a;while(k>0){b=b*10;k=k/10;}c=s%b; // c为a的平方数s的尾部if(a==c)printf("%ld^2=%ld \n",a,s);}}(3)程序运行结果求区间[x,y]中的守形数.请输入整数x,y:10,1000025^2=62576^2=5776376^2=141376625^2=3906259376^2=879093762. 探索n位守形数(1) 求解要点为了求更多位数的守形数,可应用守形数的性质:一个m位守形数的尾部m-1位数也是一个守形数。

道理很简单,a是一个m位数,a的平方数尾部的m-1位仅由a的尾部m-1位决定而与a的其他位无关。

实施易知一位守形数有三个:1,5,6。

则二位守形数的个位数字只可能是1,5,6这三个数字。

根据这一思路,我们可应用递推求出多位守形数。

(2) 程序设计// 求n位守形数#include<stdio.h>void main(){ int n,d,k,j,i,t,m,w,z,u,v,a[500],b[500],c[500];printf("n=");scanf("%d",&n);for(d=1;d<=9;d++){for(k=1;k<=500;k++){a[k]=0;b[k]=0;c[k]=0;}a[1]=d; // 给个位数赋值for(k=2;k<=n;k++){for(j=0;j<=9;j++){a[k]=j;v=0;for(i=1;i<=k;i++) c[i]=0; // 探索a(k)for(i=1;i<=k;i++){for(z=0,t=1;t<=k;t++){u=a[i]*a[t]+z;z=u/10;b[i+t-1]=u%10; // 计算平方}for(w=0,m=i;m<=k;m++){u=c[m]+b[m]+w;w=u/10;c[m]=u%10;}}for(i=1;i<=k;i++)if(a[i]!=c[i]) v=1;if(v==0) break;}}if(v==0 && a[n]!=0) // 输出n位守形数结果{printf(" %d结尾的%d守形数: ",a[1],n);for(k=n;k>=1;k--)printf("%d",a[k]);printf("\n");}}}(3)程序运行示例运行程序,输入n=30,得30位守形数5结尾的30守形数: 1066199773922562599182128906256结尾的30守形数: 893380022607743740081787109376 41 奇数序列运算式在由指定相连奇数组成的序列的每相邻两项中插入运算符号:若相邻两项都是合数,则两项中插入“-”号;若相邻两项一项合数一项素数,则两项中插入“+”号;若相邻两项都是素数,则两项中插入乘号“*”号;输入奇数b,c(b<c),完成[b,c]中奇数序列的运算式,并计算该式的运算结果。

相关文档
最新文档