PTA-练习-基础编程题目集-编程题-天一
7-1 厘米换算英尺英寸这个题目直接cm-m,然后全转英寸得到的值整除12就是英尺求余12就是英寸#includebits/stdc.h using namespace std; int main() { float a;cina; a/100; a/0.3048; a*12; int c(int)a/12; int d(int)a%12; coutc d; }7-2 然后是几点这个题目先把初始时间 %100的到分钟时/100得到小时数在对后面的多少分钟数进行绝对值的处理%60/60算出几分钟几小时然后按照符合对初始时间处理要注意分钟60要处理分钟小于0处理小时要%24#includebits/stdc.h using namespace std; int main() { int a,b;cinab; int h,m;ma%100,ha/100; int x,y;xabs(b)/60,yabs(b)%60; if(b0) { hx,my; if(m60) m-60,h1; h%24; } else { h-x,m-y; if(m0) m60,h-1; h%24; } couth; printf(%02d,m); }7-3 逆序的三位数这题很简单我们只需要把原数字当字符串存储然后反序变历在计算成数字就好了#includebits/stdc.h using namespace std; int main() { string a; cina; int num0; for(int ia.size()-1;i0;i--) numnum*10(a[i]-0); coutnum; }7-4 BCD解密转化为hex直接输出#includebits/stdc.h using namespace std; int main() { int a;cina; int ba/16; int ca%16; if(b!0) coutb; coutc; }7-5 表格输出#includebits/stdc.h using namespace std; int main() { cout------------------------------------endl; coutProvince Area(km2) Pop.(10K)endl; cout------------------------------------endl; coutAnhui 139600.00 6461.00endl; coutBeijing 16410.54 1180.70endl; coutChongqing 82400.00 3144.23endl; coutShanghai 6340.50 1360.26endl; coutZhejiang 101800.00 4894.00endl; cout------------------------------------endl; }7-6 混合类型数据格式化输入#includebits/stdc.h using namespace std; int main() { float a,b; int c; char d; cinacdb; coutd c ; printf(%.2f %.2f,a,b); }7-7 12-24小时制根据小时数12,12,12来分情况处理#includebits/stdc.h using namespace std; int main() { int a,b; scanf(%d:%d,a,b); if(a12) { couta-12:b PM; } else if (a12) { couta:b PM; } else { couta:b AM; } }7-8 超速判断简单的if判断#includebits/stdc.h using namespace std; int main() { int a;cina; if(a60) coutSpeed: a - Speeding; else coutSpeed: a - OK; }7-9 用天平找小球简单的判断#includebits/stdc.h using namespace std; int main() { int a,b,c;cinabc; if(ab) coutC; else if(ac) coutB; else coutA; }7-10 计算工资if 判断#includebits/stdc.h using namespace std; int main() { int y,t;cinyt; float ans0; if(y5) { if(t40) ans(t-40)*50*1.540*50; else anst*50; } else { if(t40) ans(t-40)*30*1.540*30; else anst*30; } printf(%.2f,ans); }7-11 分段计算居民水费if 判断#includebits/stdc.h using namespace std; int main() { float n;cinn; float ans0; if(n15) { ans(4*n)/3; } else{ ans2.5*n-17.5; } printf(%.2f,ans); }7-12 两个数的简单计算器按符合分情况#includebits/stdc.h using namespace std; int main() { int a,b;char x; cinaxb; if (x) coutab; else if(x-) couta-b; else if(x*) couta*b; else if(x/) couta/b; else if (x%) couta%b; else coutERROR; }7-13 日K蜡烛图正常if判断#includebits/stdc.h using namespace std; int main() { float o,h,l,c; cinohlc; if(co) { if(lolchohc) coutBW-Solid with Lower Shadow and Upper Shadow; else if (lolc) coutBW-Solid with Lower Shadow; else if (hohc) coutBW-Solid with Upper Shadow; else coutBW-Solid; } else if (co) { if(lolchohc) coutR-Hollow with Lower Shadow and Upper Shadow; else if (lolc) coutR-Hollow with Lower Shadow; else if (hohc) coutR-Hollow with Upper Shadow; else coutR-Hollow; } else { if(lolchohc) coutR-Cross with Lower Shadow and Upper Shadow; else if (lolc) coutR-Cross with Lower Shadow; else if (hohc) coutR-Cross with Upper Shadow; else coutR-Cross; } }7-14 求整数段和格式输出#includebits/stdc.h using namespace std; int main() { int a,b,flag; cinab;flag0; int sum0; for(int ia;ib;i) { sumi; printf(%5d,i); flag; if(flag5) coutendl,flag0; } if(flag0) coutSum sum; else coutendlSum sum; }7-15 计算圆周率这个题目注意计算的时候我们采用递推的去算分数不要先算分子再算分母不然会爆long long#includebits/stdc.h using namespace std; typedef long long ll; int main() { double a;cina; double term 1.0; double ans 1.0; int n0; while(1) { n; term term * n / (2 * n 1); ansterm; if(terma) break; } printf(%.6lf,ans*2); }7-16 求符合给定条件的整数集只用注意一下空格和换行就好#includebits/stdc.h using namespace std; int main() { int a;cina; vectorint v1; int flag0; for(int i0;i4;i) v1.push_back(ai); for(int i0;i4;i) { for(int j0;j4;j) { if(ji) continue; for(int k0;k4;k) { if(ki||kj) continue; flag; coutv1[i]v1[j]v1[k]; if(flag6) flag0; else cout ; } } coutendl; } }7-17 爬动的蠕虫简单的模拟题目#includebits/stdc.h using namespace std; int main() { int N,U,D;cinNUD; int ans0; while(1) { ans;N-U; if(N0) break; ans;ND; } coutans; }7-18 二分法求多项式单根这里注意阈值就是精确度其他的没什么好说的#includebits/stdc.h using namespace std; double a3,a2,a1,a0; double fun(double x) { return a3*x*x*xa2*x*xa1*xa0; } int main() { cina3a2a1a0; double a,b;cinab; double k0.01; double ans0; if(fun(a)0) {printf(%.2f,a);return 0;} if(fun(b)0) {printf(%.2f,b);return 0;} while(1) { double mid(ab)/2; if((b-a)k) {printf(%.2f,mid); return 0;} if(fun(mid)0){printf(%.2f,mid); return 0; } else if(fun(a)*fun(mid)0){amid;} else if(fun(b)*fun(mid)0){bmid;} } }7-19 支票面额列个方程f100yn2y1002f n98f - 199y而我们知道 y 和 f 都是在0-99之间的直接枚举就好了#includebits/stdc.h using namespace std; int main() { int f,y;int n;cinn; // f*98 n 199*y for(int i0;i100;i) { if((n199*i)%980(n199*i)/98100) { couti.(n199*i)/98; return 0; } } coutNo Solution; }7-20 打印九九口诀表简单的模拟#includebits/stdc.h using namespace std; int main() { int n;cinn; for(int i1;in;i) { for(int j1;ji;j) { coutj*i; printf(%-4d,i*j); } coutendl; } }7-21 求特殊方程的正整数解简单的枚举#includebits/stdc.h using namespace std; int main() { int n;cinn; int flag0; for(int i1;isqrt(n)1;i) { int kn-i*i; int ysqrt(k); if (y*yi*iniy) {couti yendl;flag;} } if(flag0) coutNo Solution; }7-22 龟兔赛跑这个题目的情况是有周期的90分钟一个周期我们可以先T%90之后再计算那么后面的的时间我们枚举时间为10的倍数我们检测距离用flag标志兔子是否再休息flag2是一个休息计时器flag230我们开始判断是否将flag修改将flag2归零#includebits/stdc.h using namespace std; int main() { int t;cint; int wj,tj; wjtj270*(t/90); t%90; int flag0; // 兔子是否在走动 int flag20; // 是否睡够30分钟 for(int i1;it;i) { if(flag0) { wj3,tj9; if(i%100tjwj) flag1; } else { wj3,flag2; if(flag230) if(wjtj) flag20,flag0; } } if(wjtj) cout-_- wj; else if(wjtj) cout_ wj; else if(tjwj) cout^_^ tj; }7-23 币值转换两个数组是最重要的思想#includebits/stdc.h using namespace std; int main() { string s;cins; string ans; char num[10] {a,b,c,d,e,f,g,h,i,j}; string dw[9] {,S,B,Q,W,S,B,Q,Y}; for(int i0;is.size();i) { int ks.size()-i-1; if(s[i]!0||ans.back()!a) { ansnum[s[i]-0]; } if(k%40) if(ans.back()a) ans.pop_back(); if(s[i]!0||k%40) ansdw[k]; } if(ans.size()0) couta; else coutans; }7-24 约分最简分式#includebits/stdc.h using namespace std; int main() { int a,b; scanf(%d/%d,a,b); int kgcd(a,b); couta/k/b/k; }7-25 念数字正常的数组映射#includebits/stdc.h using namespace std; int main() { string k[]{ling,yi,er,san,si,wu,liu,qi,ba,jiu}; string s;cins; for(int i0;is.size();i) { if(s[i]-) coutfu ; else coutk[s[i]-0] [is.size()-1]; } }7-26 单词长度这里注意输出“ ”要用flag来判断一下#includebits/stdc.h using namespace std; int main() { string s;getline(cin,s); int ans0; int num0; int flag0; for(int i0;is.size();i) { if(s[i]!.s[i]! )ans,num; else if(s[i] ans!0) { if(flag0) {coutans;flag1;} else cout ans; ans0; } else if(s[i].ans!0) { if(flag0) coutans; else cout ans; } } // if(num0) cout0; }7-27 冒泡法排序冒泡排序#includebits/stdc.h using namespace std; int main() { int N,K; cinNK; vectorint v1; for(int i0;iN;i) { int a;cina; v1.push_back(a); } for(int i0;iK;i) { for(int j1;jN-i;j) { if(v1[j-1]v1[j]) swap(v1[j-1],v1[j]); } } for(int i0;iN;i) coutv1[i] [iN-1]; }7-28 猴子选大王这里注意要定义两个k一个是下表删除用的一个是报数。除此之外vector.erase的参数是两个迭代器#includebits/stdc.h using namespace std; int main() { int N; cin N; vectorint v1; for (int i 1; i N; i) v1.push_back(i); int k 1; int index 0; while (v1.size() 1) { if (k 3) v1.erase(index v1.begin(),indexv1.begin()1), k 1; else index, k; index % v1.size(); } cout v1[0]; }7-29 删除字符串中的子串getline获取反复删除#includebits/stdc.h using namespace std; int main() { string s,s1; getline(cin,s); getline(cin,s1); while(1) { if(s.find(s1)-1) break; else { s.erase(s.find(s1),s1.size()); } } couts; }7-30 字符串的冒泡排序注意for (int i 0; i N; i) cout v1[i] ((i N - 1) ? : \n);三目运算符要加大括号有优先级#includebits/stdc.h using namespace std; int main() { int N, K; cin N K; vectorstring v1; for (int i 0; i N; i) { string a; cin a; v1.push_back(a); } for (int i 0; i K; i) { for (int j 1; j N - i; j) { if (v1[j - 1] v1[j]) swap(v1[j - 1], v1[j]); } } for (int i 0; i N; i) cout v1[i] ((i N - 1) ? : \n); }7-31 字符串循环左移队列的基本用法#includebits/stdc.h using namespace std; int main() { queuechar q1; string s;getline(cin,s); for(int i0;is.size();i) { q1.push(s[i]); } int K;cinK; for(int i0;iK;i) { char pq1.front(); q1.pop(); q1.push(p); } while(!q1.empty()) { coutq1.front(); q1.pop(); } }7-32 说反话-加强版coutv1[i] [i0];这里要注意一下“ ”’ ‘’\0‘#includebits/stdc.h using namespace std; int main() { vectorstring v1; string s; while(cins) { v1.push_back(s); } for(int iv1.size()-1;i0;i--) { coutv1[i] [i0]; } }7-33 有理数加法注意lcm和gcd#includebits/stdc.h using namespace std; int main() { int a,b,c,d; scanf(%d/%d %d/%d,a,b,c,d); int llcm(b,d); a*(l/b); c*(l/d); ac; int kgcd(a,l); if(l/k!1) couta/k/l/k; else couta/k; }7-34 通讯录的录入与显示注意从零开始计数#includebits/stdc.h using namespace std; int main() { int n;cinn; vectorstring v1; for(int i0;in;i) { string name,time,k,number,key; cinnametimeknumberkey; string sumname number key k time; v1.push_back(sum); } int t;cint; for(int i0;it;i) { int index;cinindex; if(indexv1.size()-1) coutNot Foundendl; else coutv1[index]endl; } }7-35 有理数均值注意ll的溢出#includebits/stdc.h using namespace std; typedef long long ll; int main() { int n;cinn; ll a,b; scanf(%lld/%lld,a,b); for(int i1;in;i) { ll c,d; scanf(%lld/%lld,c,d); ll llcm(b,d); a*(l/b); c*(l/d); ac; ll ggcd(a,l); a/g; bl/g; } ll g gcd(a,n); aa/g,bb*n/g; if(b1) couta; else couta/b; }7-36 复数四则运算注意一下这个计算的0的判断是精确1位小数的判断#includebits/stdc.h using namespace std; int main() { double a, b, c, d; cin a b c d; char fh[] { ,-,*,/ }; double newa, newb; for (int i 0; i 4; i) { printf((%.1lf%.1lfi) %c (%.1lf%.1lfi) , a, b, fh[i], c, d); if (i 0) { newa a c, newb b d; } else if (i 1) { newa a - c, newb b - d; } else if (i 2) { newa a * c - b * d; newb a * d b * c; } else if (i 3) { newa (a * c b * d) / (c * c d * d); newb (b * c - a * d) / (c * c d * d); } if (fabs(newa)0.05fabs(newb)0.05) cout 0.0; else if (fabs(newa)0.05) printf(%.1lfi, newb); else if (fabs(newb)0.05) printf(%.1lf, newa); else printf(%.1lf%.1lfi, newa, newb); cout endl; } }7-37 整数分解为若干项之和DFS并且注意输出的格式#includebits/stdc.h using namespace std; int ans[35]; int n; int flag 0; void dfs(int sum, int start, int len) { if (sum 0) { flag; if(flag%4!1) cout;; cout n ; cout ans[0]; for (int i 1; i len; i) { cout ans[i]; } if (flag % 4 0) cout endl; } for (int i start; i sum; i) { ans[len] i; dfs(sum - i, i, len 1); } } int main() { cin n; dfs(n,1,0); }7-38 数列求和-加强版高精度整数加法就是安位一个一个加然后存储进位。但是注意循环最后应该把最后的进位k加上N0的情况单独说明因为我们这理的string初始是空字符串#includebits/stdc.h using namespace std; typedef long long ll; int main() { ll a, N; cin a N; string ans ; ll k 0; if(N0) {cout0;return 0;} for (int i N; i 1; i--) { ll sum a * ik; k sum / 10; ans 0 sum % 10; } if(k!0) ans0k; reverse(ans.begin(), ans.end()); cout ans; }

相关新闻

【Web全栈进阶】FastAPI工程化:APIRouter拆分 + 配置 + 依赖注入

【Web全栈进阶】FastAPI工程化:APIRouter拆分 + 配置 + 依赖注入

之前的FastAPI还活在单文件里:所有路由挤在一个main.py。 200行时没问题,500行时没人敢动——今天把它升级成“分模块的工程”,用早报站的API实战三件套:APIRouter拆路由、Settings管配置、Depends依赖注入。 🎯 本篇产…

2026/10/9 10:20:42 阅读更多 →
Spring AI 接入已有 Java 项目的三种架构设计

Spring AI 接入已有 Java 项目的三种架构设计

Spring AI 真正进入现有 Java 系统时,首先需要解决的是 AI 能力应该放在哪个位置。实际设计可以归纳为三种典型方式:直接嵌入现有服务、独立建设 AI Service,以及为旧系统旁路增加 AI 服务。三种方式分别对应不同的业务规模、复用范围和改造成…

2026/10/9 10:19:41 阅读更多 →
C++模板进阶:非类型模板参数、模板特化与分离编译一次搞懂

C++模板进阶:非类型模板参数、模板特化与分离编译一次搞懂

C模板进阶:非类型模板参数、模板特化与分离编译一次搞懂 文章目录C模板进阶:非类型模板参数、模板特化与分离编译一次搞懂一、非类型模板参数1 类型模板参数2 非类型模板参数3 非类型模板参数的特点必须是编译期能够确定的值浮点数、类对象以及字符串不能…

2026/10/9 10:19:41 阅读更多 →

最新新闻

基于JWT/JWE的跨系统安全数据透传方案详解

基于JWT/JWE的跨系统安全数据透传方案详解

先说结论:这套“基于JWT/JWE的跨系统安全数据透传方案”,解决的是两个不同域、不同技术栈、甚至不同运维体系的服务之间,如何安全地把一段结构化数据从A端交付到B端——既保证数据在“路上”不被看、不被改,又保证接收方能够验证数…

2026/10/9 10:57:43 阅读更多 →
MySQL慢查询优化实战:索引设计与执行计划调优全攻略

MySQL慢查询优化实战:索引设计与执行计划调优全攻略

接手线上MySQL慢查询优化这类活儿,看着是加几个索引的事,实际上是一整套“读表逻辑”的博弈。索引优化策略不只是“在WHERE条件字段上建索引”这么简单,它背后涉及索引结构、查询执行计划、数据分布、写入成本之间的复杂权衡。这篇就把我在实…

2026/10/9 10:57:43 阅读更多 →
撕开高性能芯片与电竞级体验的包装:实测数据还原真实性能

撕开高性能芯片与电竞级体验的包装:实测数据还原真实性能

上周帮朋友挑新机,宣传页上“高性能芯片”四个字印得比Logo还大,背面还配了一行小字“电竞级稳帧体验”。跑分一拉出来,确实漂亮,安兔兔九十几万,看着就热血。结果朋友拿回家打了两局游戏,第三把还没打完&a…

2026/10/9 10:57:43 阅读更多 →
光伏电站运维模式怎么选?自建、委托、混合与智能运维全解析

光伏电站运维模式怎么选?自建、委托、混合与智能运维全解析

光伏圈里有一句话我特别认同:"电站并网只是起点,运维才是长跑。"做光伏这么多年,见过太多项目,前期的设计、采购、施工都舍得花钱,一到运维环节就开始精打细算,结果呢?组件热斑、逆变…

2026/10/9 10:57:43 阅读更多 →
MySQL提交数归零与123个CVE背后:真相与运维应对

MySQL提交数归零与123个CVE背后:真相与运维应对

最近在数据库圈子里,一个话题被反复讨论,甚至有人说 MySQL 正在“自杀”:代码提交数为 0,123 个 CVE 安全漏洞悬而未决。乍一听确实吓人,但作为常年折腾数据库的人,我第一反应是:得把这些数字拆…

2026/10/9 10:57:43 阅读更多 →
数据产品思维:打破数据所有权困局,让数据真正资产化

数据产品思维:打破数据所有权困局,让数据真正资产化

1. 数据团队和业务团队,为什么总在“谁说了算”上打架先从我最近遇到的一个真实场景说起。某家做零售的公司,数据部门辛苦搭了一套用户画像体系,整合了线上线下十几个系统的会员数据,清洗、打标、建模,前前后后折腾了大…

2026/10/9 10:56:40 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →