【C/PTA——循环结构3】

news2024/12/29 9:24:47

C/PTA——循环结构3

    • 7-1 二分法求多项式单根
      • 1.题目要求
      • 2.代码实现
    • 7-2 循环-十进制转化
      • 1.题目要求
      • 2.代码实现
    • 7-3 梅森数
      • 1.题目要求
      • 2.代码实现
    • 7-4 单词长度
      • 1.题目要求
      • 2.代码实现
    • 7-5 21循环-求和3
      • 1.题目要求
      • 2.代码实现
    • 7-6 21循环-金字塔
      • 1.题目要求
      • 2.代码实现
    • 7-7 循环-杨辉三角
      • 1.题目要求
      • 2.代码实现

7-1 二分法求多项式单根

1.题目要求

在这里插入图片描述

2.代码实现

#include <stdio.h>  
double a3, a2, a1, a0;  

double f(double x)  
{  
    double result;  
    result=a3*x*x*x+a2*x*x+a1*x+a0;  
    return result;  
}
  
int main()  
{  
    double a, b;  
    scanf("%lf%lf%lf%lf",&a3,&a2,&a1,&a0);  
    scanf("%lf%lf",&a,&b);  
    
    double left,mid,right;  
    left=a;  
    right=b;  
    
    ///大于阈值时使用二分法求出单根,程序结束
    while(right-left>=0.001&&f(left)*f(right)<=0)  
    {  
        if(f(left)==0)  
        {  
            printf("%.2f",left);  
            return 0;  
        }  
        if(f(right)==0)  
        {  
            printf("%.2f",right);  
            return 0;  
        }  
        
        mid=(left+right)/2;  
        if (f(mid)*f(left)>0)  
        {  
            left=mid;  
        }  
        else  //由于先决条件为f(left)*f(right)<0,因此此时else语句等价于f(mid)与f(left)异号,即与f(right)同号
        {  
            right=mid;  
        }  
    }  
    
    
    不大于阈值时输出中点
    printf("%.2f",mid);  
    return 0;  
}  

7-2 循环-十进制转化

1.题目要求

在这里插入图片描述

2.代码实现

#include<stdio.h>
#include<math.h>
int Coun(int n,int m)//进制转化,位数计算函数
{
	int count = 0;
	while (n)//统计进制转换后,数字位数的统计
	{
		count++;
		n /= m;
	}
	return count;
}
int main()
{
	int n, m;
	int sum = 0;
	scanf("%d %d", &n, &m);
	int count = Coun(n, m);
	int num = count;
	while (n)
	{
		sum = sum + (int)pow(10, num - count) * (n % m);
		n /= m;
		count--;
	}
	printf("%d", sum);
	return 0;
}

7-3 梅森数

1.题目要求

在这里插入图片描述

2.代码实现

#include<stdio.h>
#include<math.h>
int main()
{
	int n = 0, num = 0;
	int count = 0;
	scanf("%d", &n);
	for(int j=2;j<=n;j++)
	{
		for (int i = 2; i < ((int)pow(2,j)-1); i++)
		{
			if (((int)pow(2, j) - 1) % i == 0)//素数的判断
				count++;
			
		}
		if (count == 0)//梅森数的判断
		{
			printf("%d\n", (int)pow(2, j) - 1);
			num++;
		}
			
		count = 0;//判断完一个后,计数置0
	}
	if (num == 0)//不存在梅森数的情况
		printf("None\n");
	
	return 0;
}

7-4 单词长度

1.题目要求

在这里插入图片描述

2.代码实现

#include<stdio.h>
int main() {
    char s[100] = { 0 };
    char* p = &s;
    int i = 0;
    scanf("%[^.]", s);//[^.]是输入到.前面位置,遇到.结束输入
    for (; *(p) != 0; p = p + 1)
    {
        if (*(p) != ' ')
            i++;
        if (*(p) == ' ' && *(p + 1) == ' ')
            continue;//吞多余空格 
        if (*(p) == ' ' && *(p + 1) != 0 && i != 0)
        {
            printf("%d ", i);
            i = 0;
        }//输出前面单词的数目,i!=0有效解决了开头多空格问题 
        if (*(p + 1) == 0)//输出最后一个单词的数目 
            printf("%d", i);
    }
    return 0;
}

7-5 21循环-求和3

1.题目要求

在这里插入图片描述

思路:
1.使用两个嵌套的for循环,外层循环控制1到n的遍历,内层循环控制1到k的遍历。
2.在内层循环中,每次将total乘以当前外层循环的迭代变量i,并取结果对114514取模(%)。
3.在外层循环中,将计算得到的total累加到sum上,并将结果对114514取模,再重新将total置为1。

2.代码实现

#include<stdio.h>
int main()
{
    int n, k;
    scanf("%d %d", &n,&k);

    int total = 1;
    int sum = 0;

    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= k; j++)
        {
            total = (total * i) % 114514;
        }
        sum = (sum + total) % 114514;
        total = 1;
    }
    printf("%d", sum);
}

7-6 21循环-金字塔

1.题目要求

在这里插入图片描述

2.代码实现

#include<stdio.h>
int main()
{
	int n, m = 0, k, i = 1, j;
	scanf("%d", &n);
	if (n == 1) {
		printf("1");
		return 0;
	}
	while (n > m) {
		m = (i + 1) * (i + 2) / 2;
		i++;
		k = (i + 1) * (i + 2) / 2;
		if (n <= k) {
			n = i - 1;
		}
	}
	for (i = 0; i <= n; i++) {
		for (j = 0; j < n - i; j++) {
			printf("0");
		}
		printf("%d", n + 1 - i);
		for (k = 1; k <= i; k++) {      //for循环里面套了三个并列的for循环,每次重新进入内部循环时,k都会重新赋值为1;这个循环很巧妙,第一次无法进入,第二次以后就可以,并且循环次数逐一增加。
			printf("0%d", n + 1 - i);
		}
		for (j = 0; j < n - i; j++) {
			printf("0");
		}
		printf("\n");
	}
	return 0;
}

7-7 循环-杨辉三角

1.题目要求

在这里插入图片描述

2.代码实现

#include<stdio.h>
int main() {
    int n, m;
    int k = 0;
    scanf("%d %d", &n, &m);
    if(n>m)
    {
        int tmp=n;
        n=m;
        m=tmp;
}
    int triangle[22][22] = { 0 }; // 初始化为0
    for (int i = 1; i <= 21; i++) {
        triangle[i][1] = 1;
        for (int j = 2; j <= i; j++) {
            triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
        }
    }
    
    for (int i = n; i <= m; i++)//空格的输出
     {
        for (k = m - i; k >= 1; k--)
        {
            printf(" ");
        }
            
        for (int j = 1; j <= i; j++)
         {
            if(j<i)
            printf("%d ", triangle[i][j] % 10);
            if (j == i)
                printf("%d", triangle[i][j]);// 取最后一位
        }
        printf("\n");
    }
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1184883.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue技巧大揭秘:v-show与v-if的区别及性能对比一目了然

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 ⭐ 专栏简介 &#x1f4d8; 文章引言 一、v…

房产网小程序源码 房产中介小程序源码 房产网源码

房产网小程序源码 房产中介小程序源码 房产网源码 功能介绍&#xff1a; 一、付费发布信息 支持付费发布、刷新、置顶房源信息&#xff1b;二、个人发布信息 支持个人和房产经纪人发布房源信息&#xff1b;三、新房楼盘模块 支持新房楼盘功能&#xff0c;后台添加…

单链表(3)

现在有一个指针p&#xff0c;指向数据2所在的结点的地址——那么如何访问这个数据2 前面说过指针访问数据成员使用的是 指向符->。则访问这个数据2就是——p->data.因为p一开始就指向数据2的结点地址了 那么如何访问数据3,4往后等等 访问3就是——p->next->data…

MFC-TCP网络编程客户端-Socket

目录 1、客户端创建流程&#xff1a; 2、UI设计&#xff1a; 3、代码实现&#xff1a; &#xff08;1&#xff09;、ConnectSocket中重写OnReceive函数接收信息 &#xff08;2&#xff09;、框架类入口函数初始化 &#xff08;3&#xff09;、加入房间功能实现 &#xff…

新闻稿大纲怎么写框架?纯干货

新闻稿大纲在新闻报道中的重要性不言而喻&#xff0c;首先大纲能够提高写作效率&#xff0c;有了一份详细的大纲&#xff0c;可以帮助我们迅速组织思路&#xff0c;梳理采访内容&#xff0c;明确文章的结构和主题&#xff0c;避免在写作过程中出现不必要的拖延。 其次&#xf…

数据结构之AVL树

map/multimap/set/multiset这几个容器有个共同点是: 其底层都是按照二叉搜索树来实现的,但是普通的二叉搜索树有其自身的缺陷, 假如往树中插入的元素有序或者接近有序, 二叉搜索树就会退化成单支树, 时间复杂度会退化成O(N),因此map、set等关联式容器的底层结构是对二叉树进行了…

【 Docker: 数据卷挂载】

背景 Docker只提供了容器运行的必备依赖&#xff0c;但是一些编辑等操作的依赖是不支持的&#xff0c;如vi操作容器内部文件、将静态资源拷贝到容器内来等。 docker pull nginx docker run -d -p 81:80 --namemynginx -v D:/docker/nginx/www:/usr/share/nginx/www -v D:/dock…

性能测试资源监控宝藏工具:iDB Dashboard

iDB Dashboard 是 TiDB 自 4.0 版本起提供的图形化界面&#xff0c;可用于监控及诊断 TiDB 集群。TiDB Dashboard 内置于 TiDB 的 PD 组件中&#xff0c;无需独立部署&#xff1a; https://docs.pingcap.com/zh/tidb/v4.0/dashboard-intro

【GEE】8、Google 地球引擎中的时间序列分析【时间序列】

1简介 在本模块中&#xff0c;我们将讨论以下概念&#xff1a; 处理海洋的遥感图像。 从图像时间序列创建视频。 GEE 中的时间序列分析。 向图形用户界面添加基本元素。 2背景 深水地平线漏油事件被认为是有史以来最大的海上意外漏油事件。该井释放了超过 490 万桶石油&am…

实用知识(工作中常用)

mybatis-plus联表查询 pom.xml坐标 <!-- mybatis-plus-join --> <dependency><groupId>com.github.yulichang</groupId><artifactId>mybatis-plus-join</artifactId><version>1.2.4</version> </dependency>使用步骤&…

虚拟环境中使用的Python不是当前虚拟环境的,解决方法

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 在虚拟环境中使用的python和pip不是虚拟环境的pip安装不到当前的虚拟环境中…等 解决方法 1. 解决办法 打开配置文件 vim ~/.bashrc把如下代码注释即…

Gradle笔记 三 Gradle的项目周期和settings 文件

文章目录 项目的生命周期settings 文件 项目的生命周期 Gradle 项目的生命周期分为三大阶段: Initialization -> Configuration -> Execution. 每个阶段都有自己的职责,具体如下图所示: ● Initialization 阶段主要目的是初始化构建, 它又分为两个子过程,一个是执行 I…

刚柔相济铸伟业 ——访湖南顺新金属制品科技有限公司董事长张顺新

时代在变&#xff0c;唯初心不改。 精致、谦虚、谨慎、儒雅、温和——他就是张顺新&#xff0c;湖南顺新金属制品科技有限公司、湖南顺新供应链管理有限公司董事长&#xff0c;民建长沙市委常委&#xff0c;民建湖南省环资委副主任&#xff0c;省、市民建企联会常务副会长&…

加速度jsudo:小企业会遇到哪些瓶颈期?

什么是瓶颈期&#xff1f;瓶颈期&#xff0c;就是你无论怎么努力&#xff0c;成绩都是上不去&#xff0c;还是停留在原地&#xff1b;而自己表现的还是很匆忙&#xff0c;却不知道如何下手&#xff1f;就像水桶效益一样&#xff0c;水桶的木板高度层次不齐&#xff0c;像极了自…

如何使用Leangoo领歌管理Sprint Backlog

什么是Sprint Backlog&#xff1f; Sprint Backlog是Scrum的主要工件之一。在Scrum中&#xff0c;团队按照迭代的方式工作&#xff0c;每个迭代称为一个Sprint。在Sprint开始之前&#xff0c;PO会准备好产品Backlog&#xff0c;准备好的产品Backlog应该是经过梳理、估算和优先…

STM32笔记—定时器

目录 一、TIM简介 二、基本定时器&#xff08;TIM6和TIM7&#xff09; 1. TIM6和TIM7简介 2. TIM6和TIM7的主要特性 3. TIM6和TIM7的功能 3.1 时基单元 3.2 计数模式 3.3 时钟源 三、通用定时器 1. TIMx(2、3、4、5)简介 2. TIMx主要功能 3. 时钟选择 4. 影子寄存器…

湖泊河道水质蓝藻浮漂监测案例

湖泊河道水质蓝藻浮漂监测案例 湖泊和河道的浮漂水质监测和蓝藻治理是现代城市环境管理的重要内容之一。随着人类社会的发展&#xff0c;水污染问题越来越严重&#xff0c;而湖泊和河道作为水资源的重要组成部分&#xff0c;其水质的变化和污染程度直接关系到人们的生命安全和…

qt+opengl 三维坐标系(三)

文章目录 前言一、深度测和投影矩阵、观察矩阵二、绘制坐标系三、添加箭头四、添加文字五、放大缩小六、旋转七、移动八、完整代码总结 前言 效果如图 一、深度测和投影矩阵、观察矩阵 这部分不明白&#xff0c;网上查的都是这个步骤&#xff0c;用起来也没问题。 void MOp…

avue 表单自定义标题无效问题(avue 表单自定义标题,当prop含有大写字母时失效)

问题描述&#xff1a; avue 表单自定义标题&#xff0c;官方文档可以生效&#xff0c;项目中不生效。多方排查发现&#xff0c;当prop含有大写字母时失效。 代码展示&#xff1a; <avue-form v-model"form" :option"option"><template #classN…

腾讯待办关停后,导出的ics文件怎么导入iPhone手机日历?

ics文件是一种通用日历格式保存的日历文件&#xff0c;不少提醒待办类软件支持导出ics文件&#xff0c;诸如大家所熟知的腾讯待办就支持导出成ics文件&#xff0c;腾讯待办的主要功能一待办事项和日程管理位置&#xff0c;设置好时间提醒后&#xff0c;可通过公众号端口弹出提醒…