NO.18十六屆藍橋杯備戰|循環嵌套|乘法表|斐波那契|質數|水仙花數|(C++)

循環嵌套

循環嵌套的使?

while , do while , for ,這三種循環往往會嵌套在?起才能更好的解決問題,就是我們所說的:循環嵌套。這三種循環都可以任意嵌套使?
?如
寫?個代碼,打印?個乘法?訣表

1*1= 1  
1*2= 2 2*2= 4  
1*3= 3 2*3= 6 3*3= 9  
1*4= 4 2*4= 8 3*4=12 4*4=16
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25  
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36  
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49  
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64  
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
  1. 打印的內容是分為9?的,第1?打印1項,第2?打印2項,第3?打印3項,以此類推,第9?打印9項。
  2. 每??的信息,每?項的第?個乘數和列號是?致的,每?項的第?個乘數和?號是?致的,兩個乘數的積就是第三個數。
  3. 打印9?,我們可以使?循環解決,總共循環9次,每次進?循環打印??,循環變量使? i 來控制, i 從1開始,循環到9
  4. 打印??。第 i ?是有 i 項組成的,這 i 項的打印也可以寫成循環來完成。使?循環變量 j , j 從1開始,?致循環到 i ,正好循環 i 次,正好打印 i 項。同時每??打印完后還要換?。
  5. 輸出的效果中,i*j的結果如果是2位數,才有右對?,不夠2位數的情況,使?空格補?。所以這?就得使? %2d 這樣的輸出格式控制了。
#include <iostream>
using namespace std;
#include <cstdio>int main()
{for (int i = 1; i <= 9; i++){for (int j = 1; j <= i; j++){printf("%d*%d=%2d ", j, i, j * i);}cout << endl;}return 0;
}

練習

乘法表
#include <iostream>
using namespace std;
#include <cstdio>int main()
{for (int i = 1; i <= 9; i++){for (int j = 1; j <= i; j++){printf("%d*%d=%2d ", j, i, j * i);}cout << endl;}return 0;
}

像題?要求的這種情況,就得使?兩層循環嵌套來解決,外層循環負責控制打印??,內部循環負責控制每??打印?項。

包含數字9的數
#include <iostream>
using namespace std;int main()
{int cnt = 0;for (int i = 1; i <= 2019; i++){int n = i;while (n){if (n % 10 == 9){cnt++;break;}n /= 10;}}cout << cnt << endl;return 0;
}

在多層嵌套的循環中也可以使?break,但是要注意,?個break只能跳出??所在的循環,?法?次性跳出所有的循環

B2064 斐波那契數列
#include <iostream>
using namespace std;int n;int main()
{cin >> n;int a = 0;while (n--){cin >> a;int i = 1, j = 1, k = 1;while (a >= 3){k = i + j;i = j;j = k;a--;}cout << k << endl;}return 0;
}
B2079 求出 e 的值
#include <iostream>
#include <cstdio>
using namespace std;int n;int main()
{cin >> n;double e = 1;for (int j = 1; j <= n; j++){long long x = 1;for (int i = 1; i <= j; i++){x *= i;}e += 1.0 / x;}printf("%.10f", e);return 0;
}
#include <iostream>  
using namespace std;  
int main()  
{  int n = 0;  cin >> n;  int i = 1;  double e = 1;  long long fac = 1;  while (i <= n)  {  fac *= i;  e += 1.0 / fac;  i++;  }  printf("%.10lf\n", e);  return 0;  
}
三角形
#include <iostream>
using namespace std;int n;int main()
{cin >> n;for (int i = 1; i <= n; i++){for (int j = 1; j <= i; j++){cout << "*";}cout << endl;}return 0;
}
B2083 畫矩形

![[Pasted image 20250214192601.png]]

#include <iostream>
using namespace std;int a, b, f;
char c;int main()
{cin >> a >> b >> c >> f;if (f == 0){for (int i = 1; i <= a; i++){for (int j = 1; j <= b; j++){if (i == 1 || i == a || j == 1 || j == b)cout << c;elsecout << " ";        }cout << endl;}}else{for (int i = 1; i <= a; i++){for (int j = 1; j <= b; j++){cout << c;        }cout << endl;}}return 0;
}

如果我們仔細去琢磨上?的代碼,會發現 if 和 else 中都是打印圖案,區別在于實?還是空?,實?和空?的區別?在于中間區域,其實邊上的?圈實?和空?是?樣的。所以我們在實現的時候,邊上?圈打印字符,剩余的區域,做?個判斷,如果是實?打印c,如果是空?就打印空格就好了,那么就有了下?簡化的寫法。

#include <iostream>
using namespace std;int a, b, f;
char c;int main()
{cin >> a >> b >> c >> f;for (int i = 1; i <= a; i++){for (int j = 1; j <= b; j++){if (i == 1 || i == a || j == 1 || j == b)cout << c;else{if (f == 0)cout << " ";elsecout << c;   }}cout << endl;}return 0;
}
B2085 第 n 小的質數

解析:

  1. 質數?稱素數。?個?于1的?然數,除了1和它自身外,不能被其他?然數整除的數叫做質數。
  2. 第n?的質數,其實就是從?到?的第n個質數。

偽代碼

int i = 2;
int cnt = 0;
while (1)
{判斷i是否是素數試除:拿2~i-1之間的數組去試除i如果2-i-1之間有數字能整除i,則i不是素數如果2-i-1之間沒有任何一個數字能整除i,則i是素數如果i是素數,cnt++if (cnt == n)break;i++;
}
循環停止的時候,i就是第n個素數
#include <iostream>
using namespace std;int n;int main()
{cin >> n;int i = 2;int cnt = 0;while (1){int flag = 1;for (int j = 2; j <= i-1; j++){if (i % j == 0){flag = 0;break;}}if (flag == 1)cnt++;if (cnt == n)break;i++;}cout << i << endl;return 0;
}

![[Pasted image 20250214195145.png]]

“Time Limit Exceeded”(TLE,超時)是?個在編程競賽和在線評測平臺(如LeetCode、Codeforces、HackerRank等)中常?的錯誤信息。它意味著程序在執?過程中超過了給定的最?運?時間限制,?未能在規定時間內得出結果。

如果 n 有?個因? a ,那么必然存在另?個因? b ,使得 n = a × b 。如果 a 和 b 都?于 n \sqrt{ n } n ?,那么 a×b 將會?于 n ,這與 n=a×b ?盾。因此?少有?個因?不會超過的。

#include <iostream>
using namespace std;
#include <cmath>int n;int main()
{cin >> n;int i = 2;int cnt = 0;while (1){int flag = 1;for (int j = 2; j <= sqrt(i); j++){if (i % j == 0){flag = 0;break;}}if (flag == 1)cnt++;if (cnt == n)break;i++;}cout << i << endl;return 0;
}
水仙花數
#include <iostream>
#include <cmath>
using namespace std;int main()
{for (int i = 100; i <= 999; i++){int sum = 0;int tmp = i;while (tmp){sum += pow(tmp % 10, 3);tmp /= 10;}if (sum == i)cout << i << endl;}return 0;
}

pow函數,可以?計算次?的函數, pow(x, y) 返回的是 x 的 y 次?的值
pow 函數需要?個頭?件 <cmath>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/news/895719.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895719.shtml
英文地址,請注明出處:http://en.pswp.cn/news/895719.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

leetcode - hot100 - python - 專題一:哈希

1、兩數之和 簡單 題目&#xff1a; 給定一個整數數組 nums 和一個整數目標值 target&#xff0c;請你在該數組中找出 和為目標值 target 的那 兩個 整數&#xff0c;并返回它們的數組下標。你可以假設每種輸入只會對應一個答案&#xff0c;并且你不能使用兩次相同的元素。你可…

JavaEE-SpringBoot快速入門

文章目錄 本節目標Maven什么是Maven創建一個Maven項目maven項目功能maven的依賴管理全球倉庫, 私服, 本地服務器, 配置國內鏡像 第一個SpringBoot項目創建項目運行SpringBoot程序 SpringBoot原理初步Web服務器 總結 本節目標 了解什么是maven, 配置國內源使用Springboot創建項…

【Viper】配置格式與支持的數據源與go案例

Viper 是一個用于 Go 應用程序的配置管理庫&#xff0c;支持多種配置格式和數據源。 安裝依賴 go get github.com/spf13/viper go get github.com/spf13/viper/remote go get go.etcd.io/etcd/client/v3"github.com/spf13/viper/remote"要寫在etcd客戶端import里 1…

【C/C++】后綴表達式 藍橋杯/ACM備賽

核心考點&#xff1a;1.棧的應用 2.字符串處理 題目描述 所謂后綴表達式是指這樣的一個表達式&#xff1a;式中不再引用括號&#xff0c;運算符號放在兩個運算對象之后&#xff0c;所有計算按運算符號出現的順序&#xff0c;嚴格地由左而右新進行&#xff08;不用考慮運算符的…

【AI實踐】deepseek支持升級git

當前Windows 11 WSL的git是2.17&#xff0c;Android Studio提示需要升級到2.19版本 網上找到指導文章 安裝git 2.19.2 cd /usr/src wget https://www.kernel.org/pub/software/scm/git/git-2.19.2.tar.gz tar xzf git-2.19.2.tar.gz cd git-2.19.2 make prefix/usr/l…

QEMU 搭建 Ubuntu x86 虛擬機

1. 安裝 QEMU 在 Ubuntu 系統中&#xff0c;可以通過以下命令安裝 QEMU&#xff1a; sudo apt-get update sudo apt-get install qemu-system-x86_64 qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager2. 創建虛擬硬盤鏡像 qemu-img create -f raw ubuntu…

Linux驅動層學習:Linux 設備樹

設備樹是一種數據結構&#xff0c;包含多個節點&#xff0c;用于描述硬件設備及其配置信息&#xff0c;它通常用于嵌入式系統中&#xff0c;尤其是在Linux操作系統中&#xff0c;幫助操作系統識別和管理硬件資源&#xff0c;設備樹不是代碼&#xff0c;而是一種用數據描述硬件信…

金蝶云星空與釘釘高效數據集成案例分享

金蝶云星空數據集成到釘釘的技術案例分享 在企業信息化系統中&#xff0c;數據的高效流動和實時反饋是提升業務效率的關鍵。本文將聚焦于一個具體的系統對接集成案例&#xff1a;如何將金蝶云星空的數據集成到釘釘&#xff0c;并實現審核狀態的回傳提示。 本次集成方案名為“…

圖形渲染(一)——Skia、OpenGL、Mesa 和 Vulkan簡介

1.Skia —— 2D 圖形庫 Skia 是一個 2D 圖形庫&#xff0c;它的作用是為開發者提供一個高層次的繪圖接口&#xff0c;方便他們進行 2D 圖形渲染&#xff08;比如繪制文本、形狀、圖像等&#xff09;。Skia 本身不直接管理 GPU 或進行底層的渲染工作&#xff0c;而是通過 底層圖…

GIT提錯分支,回滾提交

1. 準備示例 假設我們有三次提交&#xff1a; test1&#xff1a;需要在 master 分支提交test2、test3&#xff1a;需要在 develop 分支提交 遠端線上記錄 2. 步驟 選擇需要回退的記錄&#xff1a; 選中需要回退的 commit&#xff0c;選擇 Reset Current Branch to Here...。…

【原創】在ubuntu中搭建gradle開發環境

檢查Linux版本 rootwww:~# hostnamectlStatic hostname: www.0x88.comIcon name: computer-vmChassis: vmMachine ID: 30fa955a36be492ca459599ef20bc508Boot ID: 37084dbe36f44adaa075e8f9a98f132eVirtualization: kvm Operating System: Ubuntu 22.04.5 LTSKernel: Linux 5.…

【JavaEE進階】MyBatis入門

目錄 &#x1f334;前言 &#x1f332;什么是MyBatis? &#x1f333;準備工作 &#x1f6a9;創建工程 &#x1f6a9;配置數據庫連接字符串 &#x1f6a9;數據準備 &#x1f6a9;編寫持久層代碼 &#x1f343;單元測試 &#x1f334;前言 在應?分層學習時,我們了解到…

以太網詳解(八)傳輸層協議:TCP/UDP 協議

文章目錄 傳輸層協議概述為什么需要傳輸層&#xff1f;傳輸層功能網絡層與傳輸層在實現 “端到端” 傳輸的異同兩類服務:面向連接/無連接服務 傳輸控制協議 TCPTCP 協議數據單元格式TCP 的重傳機制快重傳和快恢復快重傳舉例快恢復算法 用戶數據報協議 UDPUDP 概述UDP 基本工作過…

Electron 客戶端心跳定時任務調度庫調研文檔 - Node.js 任務調度庫技術調研文檔

Electron 客戶端心跳定時任務調度庫調研文檔 - Node.js 任務調度庫技術調研文檔 本文將對七個流行的定時任務調度庫&#xff1a;node-cron、rxjs、bull、node-schedule、agenda、bree、cron。這些庫都可以用來處理定時任務&#xff0c;但它們的特點和適用場景有所不同。我們將從…

DeepSeek 開放平臺無法充值 改用其他平臺API調用DeepSeek-chat模型方法

近幾天DeepSeek開放平臺無法充值目前已經關閉狀態&#xff0c;大家都是忙著接入DeepSeek模型 &#xff0c;很多人想使用DeepSeek怎么辦&#xff1f; 當然還有改用其他平臺API調用方法&#xff0c;本文以本站的提供chatgpt系統為例&#xff0c;如何修改DeepSeek-chat模型API接口…

pix2text 使用經驗

給同行打雞血 &#x1f60a; 構建結構化的數理領域知識庫&#xff1a; 提高可訪問性和可搜索性 Markdown和LaTeX格式&#xff1a;這兩種格式易于在線發布和共享&#xff0c;有助于提高數學內容的可訪問性。搜索引擎優化&#xff1a;將PDF內容轉換為標記語言&#xff0c;可以…

Linux(centos)系統安裝部署MySQL8.0數據庫(GLIBC版本)

安裝前檢查服務器glibc版本&#xff0c;下載對應版本包 rpm -qa | grep glibc mysql安裝包及依賴包已整理好&#xff0c;下載地址&#xff1a;https://pan.quark.cn/s/3137acc814c0&#xff0c;下載即可安裝 一、下載MySQL mysql安裝包及依賴包已整理好&#xff0c;下載地址…

6.2.圖的存儲結構-鄰接矩陣法

一.鄰接矩陣法存儲不帶權圖&#xff1a; 結點不帶權值&#xff1a; 1.左圖的無向圖中&#xff0c;A到B直達的有一條路&#xff0c;所以A行B列的值為1&#xff1b; 左圖的無向圖中&#xff0c;A到F沒有直達的路&#xff0c;所以A行F列的值為0&#xff1b; 結論&#xff1a;無…

【VB語言】EXCEL中VB宏的應用

【VB語言】EXCEL中VB宏的應用 文章目錄 [TOC](文章目錄) 前言一、EXCEL-VB1.實驗過程2.代碼 二、EXCEL-VB 生成.c.h文件1.實驗過程2.代碼 四、參考資料總結 前言 1.WPS-VB擴展包 提示&#xff1a;以下是本篇文章正文內容&#xff0c;下面案例可供參考 一、EXCEL-VB 1.實驗過…

用deepseek學大模型05邏輯回歸

deepseek.com:邏輯回歸的目標函數&#xff0c;損失函數&#xff0c;梯度下降 標量和矩陣形式的數學推導&#xff0c;pytorch真實能跑的代碼案例以及模型,數據&#xff0c;預測結果的可視化展示&#xff0c; 模型應用場景和優缺點&#xff0c;及如何改進解決及改進方法數據推導。…