当前位置: 首页 > news >正文

广东省人防工程建设网站用html制作个人网页

广东省人防工程建设网站,用html制作个人网页,网站建设的电销,网站建设的主要内容是软件交流目录 前言: 1.打印菱形 1.1补充练习 2.打印水仙花 2.1补充训练 前言: 记录博主做题的收获,以及提升自己的代码能力,今天写的题目是:打印菱形、打印水仙花数。 1.打印菱形 我们先看到牛客网的题:OJ链…

目录

前言:

1.打印菱形

1.1补充练习 

2.打印水仙花

2.1补充训练


前言:

  记录博主做题的收获,以及提升自己的代码能力,今天写的题目是:打印菱形、打印水仙花数

1.打印菱形

  我们先看到牛客网的题:OJ链接 

  题目解析:多组输入一个值(我们用n来控制)用来控制菱形的打印。

  思路将最长一行的之上的看成是上半部分,包括最长一行在内的之下划为下半部分上部分是n行,有n列,每一列由空格和星号组成,空格减少,星号增多;下半部分是n+1行,有n+1列,空格增多,星号减少

#include <stdio.h>int main()
{int n = 0;//1.多组输入while(scanf("%d", &n) != EOF){//i控制行int i = 0;//2.打印上半部分for(i = 0; i < n; i++){int j = 0;//2.1打印对应行的空格列for(j = 0; j < n - i; j++){printf(" ");}//2.2打印对应行的星号列for(j = 0; j <= i; j++){printf("* ");}printf("\n");//一列打印完换行}//3.打印下半部分for(i = 0; i < n + 1; i++){int j = 0;for(j = 0; j < i; j++){printf(" ");}for(j = 0; j < n + 1 - i; j++){printf("* ");}printf("\n");}}return 0;    
}

1.1补充练习 

  打印出下面的图案:

  还是一样的思路,分为上半部分和下半部分,上面有6行,那我们输入的时候就把n输进去一个6,下半部分是7行,也就是n+1。 

#include <stdio.h>int main()
{int n = 0;scanf("%d", &n);int i = 0;for(i = 0; i < n; i++){int j = 0;for(j = 0; j < n - i; j++){//看图会发现是两个空格printf("  ");}//第一次是1个,后面每次增加2//i一开是为0,没往下一行,就多打印两个*for(j = 0; j < 1 + 2 * i; j++){printf("* ");}printf("\n");}for(i = 0; i < n + 1; i++){int j = 0;for(j = 0; j < i; j++){printf("  ");}//7行打印13个 2*n+2是14,减去1等于13,刚好//对于下半部分,第一行i为0不减,没往下一行,就多减2个星号的打印for(j = 0; j < 2*n + 2 - 1 - 2*i; j++){printf("* ");}printf("\n");}return 0;
}

  相信看完后,读者对循环的掌控可以更如鱼得水一点~

2.打印水仙花

  水仙花数的定义有一个n位数,它的每一位数的n次方之和等于它本身。例如153这个数字:153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27。

  我们先看到牛客网的题:OJ链接

  题目的意思是说多组输入两个整数m和n;输出在m和n范围内的水仙花数,并且用空格隔开。水仙花在范围内[m,n],我们遍历的时候,是就打印,不是就跳过,水仙化数自然是从小到大排列的

#include <stdio.h>
#include <math.h>int main()
{int m, n;int flag = 1;//1.多组输入while(scanf("%d%d", &m, &n) != EOF){//2.创建i,并用i遍历区间[m,n]int i = 0;for(i = m; i <= n; i++){//3.用k当做i的副本使用,不要在循环内改变循环变量iint k = i;int sum = 0;while(k){//题目已知是三位数,用3直接当做次方sum += pow(k%10, 3);k /= 10;}//4.如果加起来的sum等于i,就是水仙花数if(sum == i){printf("%d ", i);//有打印,就把flag改成0flag = 0;}}//5.如果全部遍历完,没有打印出一个水仙花,flag没有被改成0//就在这里打印出noif(flag){printf("no");}}
}

  解释看到第3步骤,假设k是123,进入循环,k取模上10得到3,pow(3, 3)是3的3次方,然后k /= 10,123除以10商12,把12赋值给了k接着循环,直到k /= 10把商为0赋值给k,循环结束

  补充注意sum要定义在for循环内,不能定义在for循环外,这样sum在每次重新判断一个数是不是水仙数的时候,都会带着上次求的sum值或者定义在外面,每次for循环重新赋值成0

2.1补充训练

  打印0-100000(十万)之间的水仙花数

#include <stdio.h>
#include <stdio.h>int main()
{int i = 0;for(i = 0; i < 100000; i++){//1.求i的几位数的int n = 1;int m = i;while(m/=10){n++}//2.求每一位数的n次阶乘之和m = i;int sum = 0;while(m){sum = pow(m%10, n);m /= 10;}//3.判断sum等不等于iif(sum == i){printf("%d ", i);}}return 0;
}

  解释求i是几位数的时候,n从1开始是因为,假设我们此时i是12,m被初始化为12,m/10会以1的值进入循环,并被赋值成1,然后n++一次;接着m/10为商0余1,进不去循环了,如果一开始我们的n是从0开始的,那么只经过一次n++,n为1,实际上i是两位数所以n一开始设成1,这是因为无论是什么数,一开始都有一位数

  总结多组输入的方法、控制循环的训练、将一个整数一个一个剥离下来的方法以及锻炼手敲代码的能力和不怕出错进行调试的抗压心态

  希望大家读完,可以自己找到题目实现一遍,祝读者们有所收获。(喜欢的话麻烦留个小赞再走呗)!

http://www.shuangfujiaoyu.com/news/51304.html

相关文章:

  • 平邑网站建设产品推广语
  • magento网站建设网页设计需要学什么软件
  • 做ppt的图片素材网站有哪些百度网盘app下载安装 官方下载
  • 网站功能架构图怎么做昆山优化外包
  • 做网站怎么赚零花钱竞价关键词排名软件
  • seo 对手 网站 自然免费做网站的平台
  • 最好的网站建设报价网络营销推广公司
  • 西安做网站 怎样备案广州网站优化软件
  • 建站模板工程造价黄山搜索引擎优化
  • 邯郸网站只做百度投诉中心电话24个小时
  • 图书馆网站建设所需资料企业网站排名优化
  • 深圳宝安住房和建设局网站官网微信小程序怎么制作自己的程序
  • 做外贸营销网站销售咋样百度关键词seo排名优化
  • 西安建设工程招投标信息网昆明seocn整站优化
  • 酒泉网站建设专家网络营销策略论文
  • 如何识别网站建设bt搜索引擎
  • 有什么可以做试卷题目的网站网站seo视频狼雨seo教程
  • 常宁网站定制seo搜索引擎优化技术教程
  • 商城网站建设服务搜索百度指数
  • 百度电话客服24小时台州优化排名推广
  • 莱芜金点子信息港厂房出租襄阳网站seo
  • wordpress 三款站群插件之比较比较开放的浏览器
  • 南通网站排名公司上海关键词自动排名
  • dedecms_v5.6室内装饰设计公司企业网站模板.rarseo是什么专业
  • 安卓蓝牙app开发教程seo网站查询
  • 网站设计文档模板长沙好的seo外包公司
  • 加盟类网站怎么做百度seo关键词优化方案
  • 饿了吗网站wordpress软文代发代理
  • 涿州二康广州seo服务公司
  • 西平县住房和城乡建设局网站seo搜索引擎优化业务