第5次作业

1.输入两个正整数m和n(要求m<=n), 求m!+(m+1)!+(m+2)!…+n!

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int x,a=0,b=0,sum;
 5     printf("请输入一位正整数:\n");
 6     scanf("%d",&x);
 7     do
 8     {
 9         if(x>0)
10         {
11             if(x%2==0)
12             {
13                 x=x/2;
14                 a++;
15             }
16             else if(x%2!=0)
17             {
18                 x=3*x+1;
19                 b++;
20             }
21         }
22     }while(x!=1);
23     sum=a+b;
24     printf("数字x一共经过了%d次运算",sum);
25     return 0;
26 }
27     

2.输出1000以内的所有完数。所谓完数是指这个数恰好等于除他本身外的所有因子之和。例,6的因子为1,2,3,6=1+2+3,所以6是完数。

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int sum=0,i,j;
 5     printf("输出1000内所有完数");
 6     for(i=1;i<=1000;i++)
 7     {
 8         sum=0;
 9         for(j=1;j<i;j++)
10         {
11             if(i%j==0)
12             {
13                 sum=sum+j;
14             }
15         }
16         if(i==sum)
17         {
18             printf("\n%d",i);
19         }
20
21     }
22     return 0;
23 }
24  

3.奇偶归一猜想——对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1。   如n = 11,得序列:11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1。(共有14个步骤)  题目输入正整数n,求这个n多少步能归一

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int x,a=0,b=0,sum=0;
 5     printf("请输入一位正整数:\n",a);
 6     scanf("%d",&x);
 7     do
 8     {
 9         if(x>0&&x!=1)
10         {
11             if(x%2==0)
12             {
13                 x=x/2;
14                 a++;
15             }
16             else if(x%2!=0)
17             {
18                 x=3*x+1;
19                 b++;
20             }
21         }
22     }while(x!=1);
23     sum=a+b;
24     printf("数字x一共经过了%d次运算",sum);
25     return 0;
26 }
27     

附加题:

1.输入一个正整数n,输出2/1+3/2+5/3+8/5+…的前n项之和,保留2位小数,该序列从第二项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int n,i;
 5     float sum,a,b,c;
 6     printf("输入一个整数n:\n",n);
 7     scanf("%d",&n);
 8     if(n<=0)
 9     {
10         printf("error");
11     }
12     a=2;
13     b=1;
14     sum=0;
15     for(i=1;i<=n;i++)
16     {
17         sum=sum+a/b;
18         c=a+b;
19         b=a;
20         a=c;
21     }
22     printf("%.2f",sum);
23     return 0;
24 }

2.凯撒密码(caeser)的原理:每一个字母按字母表顺序向后移3位,如a加密后变成d,b加密后变成e,……x加密后变成a,y加密后变成b,z加密后变成c。例如:“baidu”用凯撒密码法加密后字符串变为“edlgx”。试写一个算法,将键盘输入的文本字符串(只包含a~z的字符)进行加密后输出。

 1 #include<stdio.h>
 2 int main()
 3 {
 4     char x;
 5     printf("请输入一个字母");
 6     scanf("%c",&x);
 7     while(x!=‘\n‘)
 8     {
 9     if(‘x‘>=‘a‘&&x<=‘w‘)
10     {
11         x=x+3;
12     }
13     else if(x==‘x‘||x==‘y‘||x==‘z‘)
14     {
15         x=x-23;
16     }
17     else if(x>=‘A‘&&x<=‘W‘)
18     {
19         x=x+3;
20     }
21     else if(x==‘X‘||x==‘Y‘||x==‘Z‘)
22     {
23         x=x-23;
24     }
25     if(x==‘\n‘)
26     {
27         break;
28     }
29     printf("%c\n",x);
30     scanf("%c",&x);
31 }
32     return 0;
33 }

二、实验总结(实验中遇到的问题及解决方法)

1:第一题就想课堂讲的一样里面的循环累乘,外面累加,这样就可以完成从一个数到另一个数的阶乘的和。注意里循环从1开始,外循环从输入较小的书开始。

2:再给累加的符号求和时要记住赋值,而且要在循环的里面。

3:先注意前提条件正整数,所以输出判断数字大于0,并且最后求出两个分式运行次数的和。

附加题:

1:在进行除法运算是最新的数等于前两个数之和,但是当较小的数被复制给较大的数,较大的数就已经被赋值,所以需要第三个数进行被赋值的程序,由于保留两位小数,所以最后要加%.2f或者%.2d来完成保留两位小数。

2:因为x,y,z三个数不像其他的字母加三,所以需要特殊处理减去23,并且程序运算的前提条件是字母,所以需要给出限制条件,当在是字母的情况下才能输出。

时间: 2024-12-20 12:53:14

第5次作业的相关文章

软件工程——第二次作业(2)

施工中-- 作业要求:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/922 项目要求是编写出一个拥有"词频统计"功能的小程序,作为一个小程序,若只是实现基本的词频统计功能,其实并不是很难.但是,如果再附加一些需求和功能的话就会让我感到有点难度了,更何况为了以后课程的要求,我选择使用Visual Studio 2015编译器和C#语言这两种从未学过的工具,在4-5天之内共10个小时左右(预计,但是实际上确实是花了更多时间

2017282110285--第一次个人作业

第一部分:结缘计算机 1.你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢? 其实我从高一就开始接触编程了,在高中我搞了两年的算法竞赛,算是有一点算法基础(捂脸,其实实力弱得一批),也是在那个时候开始爱上了编程.因此在高考结束后就报了信息安全专业,哪怕那时候父母不是很支持我报跟计算机相关的专业.我认为我的起步条件会比一般的零基础的萌新稍微好那么一点点,但也就仅限于此了,毕竟有天赋的人比比皆是,他们只是缺少一个契机罢了,入门之后分分钟起飞的也是一大把,更不用说那些大牛博主了,他们的程序员

python学习:程序控制结构·作业20141219

Python学习:程序控制结构 20141219 编程环境: windows 7 x64 python 2.7.6 题目: 1 编写程序,完成下列题目(1分) 题目内容: 如果列出10以内自然数中3或5的倍数,则包括3,5,6,9.那么这些数字的和为23.要求计算得出任意正整数n以内中3或5的倍数的自然数之和. 输入格式: 一个正整数n. 输出格式: n以内中3或5的倍数的自然数之和. 输入样例: 10 输出样例: 23 时间限制:500ms内存限制:32000kb n = int(raw_in

团队编程项目作业

团队名称: 简单 队长 学号:2015035107224 姓名:张志鹏 成员 学号:2015035107071 姓名:邱阳阳 学号:2015035107044 姓名:刘孝东 学号:2015035107007 姓名:孙弘原 学号:2015035107005 姓名:刘文帅 学号:2015035107009 姓名:杨琳 团队编程项目作业名称:爬取豆瓣电影TOP250 选择该团队编程项目原因:感觉项目有意思

团队项目编程作业

团队名称: 简单 队长 学号:2015035107224 姓名:张志鹏 成员 学号:2015035107071 姓名:邱阳阳 学号:2015035107044 姓名:刘孝东 学号:2015035107007 姓名:孙弘原 学号:2015035107005 姓名:刘文帅 学号:2015035107009 姓名:杨琳 团队编程项目作业名称:爬取豆瓣电影TOP250 选择该团队编程项目原因:我爱学习

团队作业八——第二次团队冲刺(Beta版本)第6天

团队作业八--第二次团队冲刺(Beta版本)第5天 一.每个人的工作 (1) 昨天已完成的工作 简单模式逻辑代码涉及与相关功能的具体实现 (2) 今天计划完成的工作 修改完善注册登录内容界面,编辑错题文件写入. (3) 工作中遇到的困难 今天花了较多时间在完善登录注册界面上,这让我们比较担心,如果每天都花很多时间在解决之前的问题,当天的任务又做不好,会不会赶不上进度.如果每天都不能正常完美的完成每天任务,那冲刺最后一天结束的时候,又哪里再有一个明天给我们完善代码.且今天还遇到了写入SD存储卡文件

第四周作业(汇总)

本周作业: 1.对四则运算软件需求的获取方式进行实践,例如使用调查问卷访问相关关系人等. 答: 本次是借助“问卷星”网站来发布问卷进行调查的.问卷地址:https://sojump.com/jq/9942880.aspx 本次问卷针对学生.家长和老师三个对象进行调查,对 四则软件进行需求分析.问卷调查结束后,问卷星还提供数据分析服务. 2.采用四象限法将你小组的四则运算软件的需求功能进行分类.阐述其优势与不足. 3.尝试把四则运算软件需求进行分解,变为每个小组成员可执行的积压工作项,分配这些工作

个人作业-Week3:代码复审

软件工程师的成长 我在上大学之前,对于软件工程师之类并无概念,并且高初中的电脑课也从未提及过写代码之类的东西,更多的都是一些教一些办公软件的使用(笑,明明电脑课总是因为老师“有事”变成其他课,根本就没上过几节吧),来到大学后得知一些同学高中就开始搞各种竞赛后,我感到十分惊讶,什么,从小热爱学习XX,一路坚持,最终成为XX大师的人小说以外真的有啊.大学之后的课余时间更是鲜有与软件工程相挂钩的事情,用一句话概括,就是过着这些博主批判对象的生活,十分尴尬.选这个课就是觉得应该做出些改变了,然而在第一次

z作业二总结

这是我的第二次作业,之前在课上所学的我发现已经忘得差不多了,这次的作业让我做的非常累,感觉整个人生都不太好了. 作业中的知识点:int(整型) float(单精度) double(双精度) char(字符型) 任何变量都必须先定义后使用 变量=表达式注:左边必须是单个变量 printf—格式控制字符 普通字符:原样输出. 格式控制说明:按指定的格式输出数据,与数据类型有关 >:大于 <:小于 <=,>=小于等于,大于等于 ==:等于 !=:不等于 实验中遇到的困难:知识点基本上都忘

第四周作业

第四周作业 1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. (1)复制/etc/skel目录为/home/tuser1 [[email protected] ~]# cp -r /etc/skel/ /home [[email protected] ~]# mv /home/skel /home/tuser1 [[email protected] ~]# ll -a /home/tuser1/ total 2