PTA基础题考点汇总

一:字符串(数组)的逆序,栈的方法

**字符串数组的逆序 : **

标准容器库的知识:定义stack容器于字符串:stackv; string s;

//这里用到了c++中stl(标准容器库的知识)stack;
//用的时候要声明头文件;定义stack容器和string;stack<string>v; string s;
了解几个函数,
v.top( );//让最后一个元素出栈;(v是定义的变量名)
v.pop( );  //删除栈顶元素;
v.empty();//判断栈是否为空 ,返回一个整数...是空返回1;不为空返回0;
v.push( s);//把元素放入栈中;// 实现字符串数组的逆向输出;
while(cin> >s )v.push(s);//把元素放入栈中;
//我就想问这你这for语句什么时候停z
cout<<v.top();v.pop();
while(!v.empty){cout<<" "<<v.top(); v.pop();}//输出栈中内容,这里内容是字符串.

注意:若输出用printf,方法如下”

//如果想⽤printf输出string,得加⼀ 个(字符串变量名).c_str() //printf("%s",s.c_str());/*如何在Dev-Cpp中使⽤C++11中的函数:
如果想要在 Dev-Cpp ⾥⾯使⽤C++11特性的函数,⽐如刷算法中常⽤的stoi 、 to_string 、 unordered_map 、 unordered_set 、 auto 这些,需要在设置⾥⾯让dev⽀持C++11。
~需要这样做~
在菜单栏中⼯具-编译选项-编译器-编译时加⼊ -std=c++11 这句命令即可~
*/

二:f(x)=∑(i=0->i=n)=(a[ix^i) 在x点的值。

//此处x是一个常数
/*
假如n=2,x=2, f(x)=a[0]x(2^0)+ a[1]x(2^1)+a[2]x(2^2);
从上式子中我们看到a【2】的2成了2次,a【1】一次,a【0】零次。
此时式子可以用下面的循环表式:for(int i = 2; i > =0; i--){add = add * 2 + a[i];}
*/ 
double f( int n, double a[], double x )
{double add = 0;for(int i = n; i > -1; i--){add = add * x + a[i];}return add;
}

三:统计给定数中某个数的个数

这种题首先要得到数字的每一位(除10和余10的语句),利用while循环来判定所给的数是否和题目中所给定的相同,相同就把它放到数组中,所以定义一个数组 a【10】来统计0-9出现的次数。

//例如a=4589145;要统计某位数 **或者** 统计出现最多的次的那位数;int arr[10]={0};
int m
int n=4589145;//给定的数字;while(n)
{
m=n%10;
arr[m]++;
n/=10;
}
//如果要求给定的数字N;就按照要求输出 arr【N】;不是自定义函数就用printf输出,是的话一般return a【N】;
//如果要返回出现最多的就循环遍历查找最大的那个数字,如下:int  max=0int temp;
for(int i=0;i<10;i++)
{if(a[max]<a[i]){temp=a[i];a[i]=a[max];a[max]=a[i]];}
}
//最后按要求输出。

四:阶乘运算

不在整数范围内的比较难,多看看吧!

//阶乘一般运算( 在整数范围内的);
//给定一个数(如n=10),然后求阶乘,用for循环解决
int n=10;//给定的数;
int sum=1;//求和喽;for(int i=1;i<10;i++){sum=sum*(i+1);}
//还有就是有种不在整数范围内的,这种需要用到数组;
//例如计算1000的阶乘
int num=1000;//给定的数
int  k=1; // 位数
int   n=0; // 进位
int ar[3000]=0;ar[0]=1;//给定足够大的数组,使能够存放下结果;
int temp;//暂时计数;
int i,j;//循环遍历用到
for( i=2;i<=num;i++)
{for(j=0;j<k;j++){temp=ar[j]*i+n; // 相应阶乘中的一项与当前所得临时结果的某位相乘(加上进位)ar[j]=temp%10; // 更新临时结果的该位上的信息n=temp/10; // 看是否有进位}while(n)  //看是否进位{ar[k++]=n%10; // 新加一位,添加信息。位数+1n/=10; /  }
}

五:计算中位数

//数组里的中位数
//考题好像不分奇数偶数   如果是奇数个,像ar【5】,就返回ar【2】
//					如果偶数个,像ar【4】,就返回那个叫大的ar【2】
//及返回的是ar【n/2】;
//这里考察的是排序算法(这个例题给了个希尔排序),主要考察时间复杂度,所以像冒泡,选择,直接排序都通过不了;
int N;//给定
for(d = N/2; d >= 1; d/=2){for(i=d;i < N; i++){for(j=i-d;j>=0&&A[j]>A[j+d];j-=d){temp = A[j];A[j] = A[j+d];A[j+d] = temp;  }}}

六 :计算a+aa+aaa+…+

#include<stdio.h>
#define N 100001
int s[N]= {0};int main()
{int a,n;int i,j,index,t;scanf("%d %d",&a,&n);index=n;if(n==0)printf("0");else{for(i=0,j=n; i<n; i++,j--){t=s[i]+j*a;s[i]=t%10;if(t/10)s[i+1]=t/10;}}if(s[n]>0)index=n+1;for(i=index-1; i>=0; i--)printf("%d",s[i]);return 0;}

七:排序

冒泡排序

for(int i=0;i<n-1;i++)for(int j=0;j<n-i-1;j++)if(a[j]>a[j+1])int temp;{temp=a[j];a[j]=a[j+1];a[j+1]=temp;}

选择排序

for(int i=0;i<n-1;i++)for(int j=i+1;j<n;j++)if(a[i]>a[j+1])int temp;{temp=a[j];a[j]=a[i];a[i]=temp;}

直接排序

 for(int i=1;i<n;i++)int key=a[i];j=i-1;while(j>=0&&a[j]>key){a[j+1]=a[j];j--;     } a[j+1]=key;

希尔排序

for(d = N/2; d >= 1; d/=2){for(i=d;i < N; i++){for(j=i-d;j>=0&&A[j]>A[j+d];j-=d){temp = A[j];A[j] = A[j+d];A[j+d] = temp;  }}}

八:查找

折半查找

binarySearch(int a[], int n, int key){int low = 0;      //low表示指向最小的元素int high = n - 1; //high表示指向最大的元素while(low<= high){int mid = (low + high)/2;//mid表示指向最中间的元素(奇数指向最中间,偶数指向较大的那个数字)int midVal = a[mid]; //最中间的那个值;//比较最中间的值与目标值的大小,如果key大说明要让low修改if(midVal<key)    low = mid + 1;else if(midVal>key)high = mid - 1;elsereturn mid;//找到该元素}return -1;//没有找到;
}

小知识

1cm=30.48foot(英尺)

1foot=12inch(英寸)

圆周率

给定精度k,计算圆周率的值:

在这里插入图片描述

//计算圆周率
#include<stdio.h>
int main()
{
float temp=1;//temp用于记录每项式的值;temp=n/d;
float n=1,d=3,sum=1;//n表示分子的值, d表示分母的值, sum表示和;
float i=2, k;//提供 给定的精度;
scanf("%f",&k);//没有&都运行没结果了.........
while (temp>=k){temp=n/d;sum+=temp;n=n*i;//下一项分子d=d*(2*i+1);//下一项分母;i++ ;}printf("%.6f",sum*2);return 0;}

最大公约数

//1.
int a,b;
int temp
scanf("%d %d",&a,&b);
if(a>b)
{temp=a;a=b;b=temp;
}
for(i=a;i>0;i--)
{if( a%i==0&&b%i==0) break;
}
printf("%d",i);
//2.
int a,b;
int temp=1;
scanf("%d %d",&a,&b);
if(a>b)
{temp=a;a=b;b=temp;
}
while(temp!=0)
{temp=b%a;b=a;a=temp;
}
cout<<b;

素数

int i,n;
//1.0
for(i=2;i<n;i++)
{if(n%i==0)break;
}
if(i=n)cout<<"sushu";
else   cout<<"bushi";
//2.0
for(i=2;i<=sqrt(n);i++)
{if(n%i==0)break;
}
if(i>sqrt(n)) cout<<"sushu";
else cout<<"bushi"

c++保留小数方法

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

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

相关文章

一二三应用开发平台应用开发示例(4)——视图类型介绍以及新增、修改、查看视图配置

调整上级属性类型 前面为了快速展示平台的低代码配置功能&#xff0c;将实体文件夹的数据模型上级属性的数据类型暂时配置为文本类型&#xff0c;现在我们调整下&#xff0c;将其数据类型调整为实体&#xff0c;如下图所示&#xff1a; 数据类型需要选择实体&#xff0c;并在实…

STM32单片机系统

1.STM32最小系统 微型计算机&#xff08;面&#xff09; 单片机最小系统是指能够将单片机芯片运行所必需的最少的硬件电路集成在一起的系统。 它是一种基本的单片机应用系统&#xff0c;通常由主芯片&#xff0c;时钟电路&#xff0c;复位电路&#xff0c;电源电路&#xff0c…

Ubuntu/Linux SSH 端口转发

文章目录 Ubuntu/Linux SSH 端口转发概述本地端口转发场景一场景二 参考资料 Ubuntu/Linux SSH 端口转发 概述 SSH, Secure Shell 是一种在网络上用于安全远程登录到另一台机器的工具。除了远程登录以外&#xff0c;ssh 的端口转发是它的另一项强大功能。通过 ssh 端口转发功…

计算机网络知识点整理1

目录 激励的话 一、计算机发展的三个阶段 二、互联网标准化工作 三、互联网的组成 边缘部分 核心部分 电路交换的主要特点 分组交换的主要特点 四、三大交换方式的主要特点 总结 激励的话 没关系的&#xff0c;有三分钟热度&#xff0c;就有三分钟收获 一、计算机…

RabbitMQ实践——使用WebFlux响应式方式实时返回队列中消息

大纲 Pom.xml监听队列实时返回消息测试完整代码工程代码 在之前的案例中&#xff0c;我们在管理后台收发消息都是通过短连接的形式。本文我们将探索对队列中消息的实时读取&#xff0c;并通过流式数据返回给客户端。 webflux是反应式Web框架&#xff0c;客户端可以通过一个长连…

捷云等保一体机 产品服务一站式等保合规交付解决方案

等保2.0的变化 2019 年 5 月 13 日&#xff0c;网络安全等级保护制度 2.0 国家标准&#xff08;简称“等保 2.0”&#xff09;正式发布&#xff0c;将等保 2.0 基本要求、测评要求、安全设计技术要求框架统一为安全管理中心支持下的三重防护结构框架。定级对象在按照等保 2.0 …

Python爬虫-贝壳新房

前言 本文是该专栏的第32篇,后面会持续分享python爬虫干货知识,记得关注。 本文以某房网为例,如下图所示,采集对应城市的新房房源数据。具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内容。(附带完整代码) 正文 地…

TensorFlow高阶API使用与PyTorch的安装

欢迎来到 Papicatch的博客 文章目录 &#x1f349;TensorFlow高阶API使用 &#x1f348;示例1&#xff1a;使用tf.keras构建模型 &#x1f34d;通过“序贯式”方法构建模型 &#x1f34d;通过“函数式”方法构建模型 &#x1f348;示例2&#xff1a;编译模型关键代码 &am…

ArkTS开发系列之导航 (2.6 图形)

上篇回顾&#xff1a;ArkTS开发系列之导航 (2.5.2 页面组件导航&#xff09; 本篇内容&#xff1a; 显示图片、自定义图形和画布自定义图形的学习使用 一、知识储备 1. 图片组件&#xff08;Image&#xff09; 可以展示jpg 、png 、svg 、gif等各格式的网络和本地资源文件图…

AI 开发平台(Coze)搭建小游戏《挑战花光10亿》

前言 本文讲解如何从零开始&#xff0c;使用扣子平台去搭建一个小游戏 这是成品链接&#xff1a;挑战花光10亿 - 扣子 AI Bot (coze.cn) 欢迎大家去体验一下 效果 正文 什么是coze平台&#xff1f; 扣子&#xff08;Coze&#xff09;是字节跳动推出的一站式 AI 开发平台&am…

周末设计高端企业_集团官网主题Discuz模板

风格名称: 周末设计_高端企业_集团官网 适用版本: Discuz! X3.0、X3.1、X3.2、X3.3、F1.0 风格编码: 使用语言包结构&#xff0c;适合全部编码 周末设计高端企业_集团官网主题Discuz模板

会话会话会话

目录 1.会话 1.1 为什么需要会话控制 1.2 域对象的范围 1.2.1 应用域的范围 1.2.2 请求域的范围 1.2.3 会话域的范围 1.3 Cookie技术 1.3.1 Cookie的概念 1.3.2 Cookie的作用 1.3.3 Cookie的应用场景 1.3.4 Cookie的入门案例 ① 目标 ② Cookie相关的API ③ Serv…

C++ | Leetcode C++题解之第187题重复的DNA序列

题目&#xff1a; 题解&#xff1a; class Solution {const int L 10;unordered_map<char, int> bin {{A, 0}, {C, 1}, {G, 2}, {T, 3}}; public:vector<string> findRepeatedDnaSequences(string s) {vector<string> ans;int n s.length();if (n < L…

GPOPS-II教程(1): 语法和一个最优控制问题案例

文章目录 一、写在前面二、GPOPS-II结构2.1 setup的语法2.2 function的语法2.2.1 setup.functions.continuousfun2.2.2 setup.functions.endpoint 2.3 bounds的语法setup.guessoutput 三、例题3.1 问题描述3.2 代码部分3.2.1 main function3.2.1.1 初始参数设置3.2.1.2 边界条件…

安装VEX外部编辑器

Houdini20配置VEX外部编辑器方法_哔哩哔哩_bilibili 下载并安装Visual Studio Code软件&#xff1a;Download Visual Studio Code - Mac, Linux, Windows 在Visual Studio Code软件内&#xff0c;安装相关插件&#xff0c;如&#xff1a; 中文汉化插件vex插件 安装Houdini Expr…

图像处理Python库--图片裁剪、缩放、灰度图、圆角等

图像处理Python库 py-img-processor1. 安装2. 使用(Usage)2.1 运行配置2.2 图像处理处理函数图像处理参数为字符串图像处理参数为JSON 命令行提取图像主色调 py-img-processor Image editor using Python and Pillow. 依赖Pillow开发的Python库&#xff0c;用于图像编辑处理。…

nest.js关键笔记

Nest.js 介绍核心功能设计模式&#xff1a;IOC 控制反转 DI 依赖注入前置知识&#xff1a;装饰器前置知识装饰器-实现一个GET请求 Nestjs脚手架Nestjs cli 常用命令 RESTful 风格设计Nestjs 控制器控制器中常见的参数装饰器 Session 实例Nestjs 提供者**工厂模式**异步模式 Nes…

【Unity服务器01】之【AssetBundle上传加载u3d模型】

首先打开一个项目导入一个简单的场景 导入怪物资源&#xff0c; AssetBundle知识点&#xff1a; 1.指定资源的AssetBundle属性标签 &#xff08;1&#xff09;找到AssetBundle属性标签 &#xff08;2&#xff09;A标签 代表&#xff1a;资源目录&#xff08;决定打包之后在哪…

如何给文档设置密码?电脑文件安全加密的详细操作步骤(10种方法)

在数字化时代&#xff0c;电脑文件的安全和隐私至关重要。通过给电脑的文件或者文件夹设置密码和加密&#xff0c;可以有效保护你的重要文件不被未经授权的人员访问&#xff0c;特别是公司的重要岗位&#xff0c;一些特殊的机密文件&#xff0c;投标文件&#xff0c;资金文件等…

动手学深度学习(Pytorch版)代码实践 -深度学习基础-10权重衰减

10权重衰减 """ 正则化是处理过拟合的常用方法&#xff1a;在训练集的损失函数中加入惩罚项&#xff0c;以降低学习到的模型的复杂度。 保持模型简单的一个特别的选择是使用L2惩罚的权重衰减。这会导致学习算法更新步骤中的权重衰减。 """impor…