算法实战(一)

基础编程题

  • 题目来源([PAT题目](https://pintia.cn/problem-sets/14/exam/problems/type/6))
    • 6-2 多项式求值
    • 6-5 求自定类型元素的最大值
    • 6-6 求单链表结点的阶乘和
    • 6-7 统计某类完全平方数
    • 6-9 统计个位数字

题目来源(PAT题目)

6-2 多项式求值

在这里插入图片描述
裁判测试程序样例:

#include <stdio.h>#define MAXN 10double f( int n, double a[], double x );int main()
{int n, i;double a[MAXN], x;scanf("%d %lf", &n, &x);for ( i=0; i<=n; i++ )scanf("%lf", &a[i]);printf("%.1f\n", f(n, a, x));return 0;
}/* 你的代码将被嵌在这里 */

题解:

double f( int n, double a[], double x ){int i;double sum=0;// 用于求和for(i=0;i<=n;i++)sum+=(a[i]*pow(x,i)); // pow是math里面库函数,使用时注意x,i为浮点数return sum;
}

6-5 求自定类型元素的最大值

在这里插入图片描述
裁判测试程序样例:

#include <stdio.h>#define MAXN 10
typedef float ElementType;ElementType Max( ElementType S[], int N );int main ()
{ElementType S[MAXN];int N, i;scanf("%d", &N);for ( i=0; i<N; i++ )scanf("%f", &S[i]);printf("%.2f\n", Max(S, N));return 0;
}/* 你的代码将被嵌在这里 */

题解一:

ElementType Max( ElementType S[], int N )
{ElementType maxNum=S[0];for(int i = 1;i<N;i++){// 使用三元表达式maxNum = maxNum> S[i]? maxNum : S[i];}return maxNum;
}

题解二:

ElementType Max( ElementType S[], int N )
{ElementType maxNum=S[0]; // 假设下标为0的元素为最大值for(int i = 1;i<N;i++)if(maxNum<S[i]) // 如果maxNum小于S[i],就更新maxNum=S[i];return maxNum;
}

6-6 求单链表结点的阶乘和

在这里插入图片描述
裁判测试程序样例:

#include <stdio.h>
#include <stdlib.h>typedef struct Node *PtrToNode;
struct Node {int Data; /* 存储结点数据 */PtrToNode Next; /* 指向下一个结点的指针 */
};
typedef PtrToNode List; /* 定义单链表类型 */int FactorialSum( List L );int main()
{int N, i;List L, p;scanf("%d", &N);L = NULL;for ( i=0; i<N; i++ ) {p = (List)malloc(sizeof(struct Node));scanf("%d", &p->Data);p->Next = L;  L = p;}printf("%d\n", FactorialSum(L));return 0;
}/* 你的代码将被嵌在这里 */

题解:

// 采用递归求阶乘
int Factorial(int n){if(n==0)return 1;return n*Factorial(n-1);
}
int FactorialSum( List L ){PtrToNode p;int Fsum=0;p=L;while(p){ // 遍历整个链表Fsum+=Factorial(p->Data);p=p->Next;}return Fsum;
}

6-7 统计某类完全平方数

在这里插入图片描述
裁判测试程序样例:

#include <stdio.h>
#include <math.h>int IsTheNumber ( const int N );int main()
{int n1, n2, i, cnt;scanf("%d %d", &n1, &n2);cnt = 0;for ( i=n1; i<=n2; i++ ) {if ( IsTheNumber(i) )cnt++;}printf("cnt = %d\n", cnt);return 0;
}/* 你的代码将被嵌在这里 */

题解:

int IsTheNumber ( const int N ){// sqrt函数返回值为double类型,由于定义的是int数据,在赋值运算中,赋值号两边的数据类型不同时,需要把右边表达式的类型转换为左边变量的类型,如果不是完全平方数的话,后面肯定会损失精度int number=N,array[10]={0},m=sqrt(number);if(m*m==number){  // 判断是不是完全平方数while(number){array[number%10]++;  //使用辅助数组记录每个位出现的次数number/=10;}for(int i=0;i<=9;i++){ // 遍历循环,如果对应位置大于1,就说明至少有两位数字相同if(array[i]>1)return 1;}}return 0;
}

C语言类型转换:详细讲解

6-9 统计个位数字

在这里插入图片描述
裁判测试程序样例:

#include <stdio.h>int Count_Digit ( const int N, const int D );int main()
{int N, D;scanf("%d %d", &N, &D);printf("%d\n", Count_Digit(N, D));return 0;
}/* 你的代码将被嵌在这里 */

题解:

int Count_Digit ( const int N, const int D ){int number,count=0;if(N>0)number=N;elsenumber=-N;if(N==0&&D==0) // 如果是0的话,统计也是0出现的次数,直接返回1即可。return 1;while(number){ // 遍历去判断每一位是否和给出的D相同if(number%10==D)count++;number/=10;}return count;
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【六大排序详解】终篇 :冒泡排序 与 快速排序

终篇 :冒泡排序 与 快速排序 1 冒泡排序1.1 冒泡排序原理1.2 排序步骤1.3 代码实现 2 快速排序2.1 快速排序原理2.1.1 Hoare版本代码实现 2.1.2 hole版本代码实现 2.1.3 前后指针法代码实现 2.1.4 注意取中位数局部优化 2.1.5 非递归版本非递归原理代码实现 2.2 特性总结 谢谢阅…

arm64虚拟化技术与kvm实现原理分享

文章目录 1 简介2 arm64 虚拟化相关硬件支持2.1 arm64 cpu 虚拟化基本原理及硬件支持2.2 系统寄存器捕获和虚拟寄存器支持2.3 VHE 特性支持2.4 内存虚拟化支持2.5 IO 虚拟化支持2.6 DMA 虚拟化支持2.7 中断虚拟化支持2.8 定时器虚拟化支持 3 arm64 kvm 初始化流程3.1 初始化总体…

.NET学习教程一——.net基础定义+VS常用设置

一、定义 .NET分为.NET平台和.NET框架。 .NET平台&#xff08;厨房&#xff09;.NET FrameWork 框架&#xff08;柴米油盐酱醋茶&#xff09; .NET平台&#xff08;中国移动联通平台&#xff09;.NET FrameWork 框架&#xff08;信号塔&#xff09; .NET平台基于.NET Fra…

Ansys Lumerical | 曲面波导锥度(varFDTD 和 FDTD)

附件下载 联系工作人员获取附件 在本例中&#xff0c;我们将使用MODE 2.5D变分FDTD求解器确定SOI锥度的最佳形状。 注意&#xff1a;也可以使用特征模态展开 &#xff08;EME&#xff09; 求解器来模拟此锥度。 我们将首先对这种锥度的设计进行参数化&#xff0c;如下所示&a…

k8s 监控告警终极方案

公众号「架构成长指南」&#xff0c;专注于生产实践、云原生、分布式系统、大数据技术分享 最近一直在搞基于K8S的监控告警平台建设&#xff0c;查找了不少资料&#xff0c;也实验了不少次&#xff0c;目前算是有一定的成果了&#xff0c;分享一下&#xff0c;以下是我们的系统…

SpringBoot 中 @Transactional 注解的使用

一、基本介绍 事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编程式和声明式的两种方式。本篇只说明声明式注解。 1、在 spring 项目中, Transactional 注解默认会回滚运行时异常及其子类&#xff0c;其它范…

k8s源码阅读环境配置

源码阅读环境配置 k8s代码的阅读可以让我们更加深刻的理解k8s各组件的工作原理&#xff0c;同时提升我们Go编程能力。 IDE使用Goland&#xff0c;代码阅读环境需要进行如下配置&#xff1a; 从github上下载代码&#xff1a;https://github.com/kubernetes/kubernetes在GOPATH目…

基于JavaWeb+BS架构+SpringBoot+Vue智能停车计费系统的设计和实现

基于JavaWebBS架构SpringBootVue智能停车计费系统的设计和实现 文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 文末获取源码 Lun文目录 1 绪 论 1 1.1 研究背景 1 1.2 研究意义 1 1.3 系统主要功能 1 1.4 拟解决…

解决:Unity : Error while downloading Asset Bundle: Couldn‘t move cache data 问题

目录 问题&#xff1a; 尝试 问题得到解决 我的解释 问题&#xff1a; 最近游戏要上线&#xff0c;发现一个现象&#xff0c;部分机型在启动的时候闪退或者黑屏&#xff0c;概率是5%左右&#xff0c;通过Bugly只有个别机型才有这个现象&#xff0c;其实真实情况比这严重的多…

2个nodejs进程利用redis 实现订阅发布

1.新建文件 redis_db.js use strict;const redis require(redis); const options {host: "127.0.0.1",port: 6379,password: "123456", // CONFIG SET requirepass "123456" }var array [] for(var i0; i<3; i){const client redis.crea…

ZeroBind:DTI零样本预测器

现有的药物-靶点相互作用&#xff08;DTI&#xff09;预测方法通常无法很好地推广到新的&#xff08;unseen&#xff09;蛋白质和药物。 在这项研究中&#xff0c;作者提出了一种具有子图匹配功能的蛋白质特异性元学习框架 ZeroBind&#xff0c;用于根据其结构预测蛋白质-药物相…

Phoenix基本使用

1、Phoenix简介 1.1 Phoenix定义 Phoenix是HBase的开源SQL皮肤。可以使用标准JDBC API代替HBase客户端API来创建表&#xff0c;插入数据和查询HBase数据。 1.2 Phoenix特点 容易集成&#xff1a;如Spark&#xff0c;Hive&#xff0c;Pig&#xff0c;Flume和Map Reduce。性能…