当前位置: 首页 > backend >正文

题单【循环结构】

P1009 [NOIP 1998 普及组] 阶乘之和

P1009 [NOIP 1998 普及组] 阶乘之和 - 洛谷

高精度乘法与高精度加法;按照运算的顺序来 

#include<iostream>
#include<cstdio>
using namespace std;
int n,a[101]={0},s[101]={0};
void do_jiecheng(int x)
{int g=0;for(int i=100;i>=0;i--)//从末尾开始存,a[100]存的是个位数{a[i]=a[i]*x+g;    //两位相乘+进位(刚开始进位为0)g=a[i]/10;        //修改进位a[i]=a[i]%10;     //取模}
}
void jiecheng_add()
{int g=0;for(int i=100;i>=0;i--){s[i]=s[i]+a[i]+g;g=s[i]/10;s[i]=s[i]%10;}
}
void output()
{int w;for(int i=0;i<=100;i++){if(s[i]!=0){w=i;break;}}for(int i=w;i<=100;i++)printf("%d",s[i]);
}int main()
{scanf("%d",&n);s[100]=a[100]=1;for(int i=2;i<=n;i++){do_jiecheng(i);jiecheng_add();}output();return 0;
}

 

P1035 [NOIP 2002 普及组] 级数求和

P1035 [NOIP 2002 普及组] 级数求和 - 洛谷

【注意】浮点数除法要用“1.0”去除 

#include<bits/stdc++.h>
using namespace std;int main()
{int n;cin>>n;int i;double sum=0;for(i=1;;i++){sum+=1.0/i;       //注意这边是“1.0”if(sum>n){break;}}cout<<i;return 0;
}

 

P2669 [NOIP 2015 普及组] 金币

P2669 [NOIP 2015 普及组] 金币 - 洛谷

 循环的嵌套

#include<bits/stdc++.h>
using namespace std;int main()
{int k;cin>>k;long sum=0;int num=0;for(int i=0;;i++){for(int j=1;j<=i;j++){sum+=i;num++;if(num=k){cout<<sum;return 0;}}}return 0;
}

 

P5723 【深基4.例13】质数口袋

P5723 【深基4.例13】质数口袋 - 洛谷

质数的判断;vector容器的应用;输出 

#include <bits/stdc++.h>
using namespace std;bool isPrime(int n) {if (n < 2) return false;for (int j = 2; j * j <= n; j++) {if (n % j == 0) return false;}return true;
}int main() {int L;cin >> L;if (L < 2) {  // L == 1 或更小,不可能存入质数cout << "0" << endl;return 0;}int sum = 0, num = 0;vector<int> primes;  // 存储所有装入的质数for (int i = 2; sum + i <= L; i++) {  // 遍历所有可能的质数if (isPrime(i)) {sum += i;primes.push_back(i);num++;}}for (int p : primes) {cout << p << endl;}cout << num << endl;  // 输出质数个数return 0;
}

 

P1217 [USACO1.5] 回文质数 Prime Palindromes

P1217 [USACO1.5] 回文质数 Prime Palindromes - 洛谷

一个一个生成回文数,再判断是否是质数 

#include <iostream>
#include <cmath> 
using namespace std;bool prime(int x)
{bool b=true;for(int i=2;i<=sqrt(x);i++){if(x%i==0)b=false;}return b;
}	//判断质数的函数int main()
{int a,b;int c[100000];int i=3;int d1,d2,d3,d4,d5;c[0]=5;c[1]=7;c[2]=11;	//2位数和1位数只有这三个是回文质数for(d1=1;d1<=9;d1+=2)for(d2=0;d2<=9;d2++){c[i]=d1*100+d2*10+d1;i++;}	//生成3位回文数for(d1=1;d1<=9;d1+=2)for(d2=0;d2<=9;d2++)for(d3=0;d3<=9;d3++){c[i]=d1*10000+d2*1000+d3*100+d2*10+d1;i++;}	//生成5位回文数for(d1=1;d1<=9;d1+=2)for(d2=0;d2<=9;d2++)for(d3=0;d3<=9;d3++)for(d4=0;d4<=9;d4++){c[i]=d1*1000000+d2*100000+d3*10000+d4*1000+d3*100+d2*10+d1;i++;}	//生成7位回文数for(d1=1;d1<=9;d1+=2)for(d2=0;d2<=9;d2++)for(d3=0;d3<=9;d3++)for(d4=0;d4<=9;d4++)for(d5=0;d5<=9;d5++){c[i]=d1*100000000+d2*10000000+d3*1000000+d4*100000+d5*10000+d4*1000+d3*100+d2*10+d1;i++;}	//生成9位回文数cin>>a>>b;//输入范围for(int i=0;i<100000000;i++){if(c[i]>=a && c[i]<=b && prime(c[i])==true){cout<<c[i]<<endl;}	//判断回文数是否是质数if(c[i]>b)break;	//当超出范围时及时退出循环}
}

P1307 [NOIP 2011 普及组] 数字反转

 P1307 [NOIP 2011 普及组] 数字反转 - 洛谷

(1)考虑负数——先输出符号,再取反;

(2)考虑0——直接输出;

(3)考虑1~9之间的数——直接输出;

(4)考虑其他数——先利用“%”和“/”,把每一位存入数组中;去除前导0;输出

#include<bits/stdc++.h>
using namespace std;int main()
{int n;int a[11]={0};int i=0;cin>>n;if(n<0){cout<<"-";n=-n;}if(n==0){cout<<0;return 0;}if(n>0 && n<10){cout<<n;return 0;}else{while(n!=0){a[i]=n%10;n/=10;i++;}}int daff=0;for(int j=0;j<i;j++){if(a[j]==0 && a[j+1]!=0){daff=j+1;break;}}for(int j=daff;j<i;j++){cout<<a[j];}return 0;
}

 另一种方法(更简单)

#include<bits/stdc++.h>
using namespace std;
int n,s=0;
int main()
{cin>>n;while(n) {s=s*10+n%10;	//在s的末尾加一位n/=10;			//处理n}cout<<s;return 0;
}

 

P1720 月落乌啼算钱(斐波那契数列)

P1720 月落乌啼算钱(斐波那契数列) - 洛谷 

 斐波那契数列

#include<iostream>
using namespace std;
long long a=1,b=1,c=0;
int n,i;
int main()
{cin>>n;for (i=3;i<=n;i++){c=a+b;a=b;b=c;}cout<<c<<".00";return 0;
}

 

P1420 最长连号

P1420 最长连号 - 洛谷

 【方法一】

#include<bits/stdc++.h>
using namespace std;int main()
{int n;int a[1010]={0};cin>>n;for(int i=0;i<n;i++){cin>>a[i];}int num[1010]={0};int j=0;for(int i=0;i<n-1;i++){if(a[i]+1==a[i+1]){num[j]++;}else{j++;}}int max=num[0];for(int i=0;i<=j;i++){if(num[i]>max){max=num[i];}}cout<<max+1;return 0;
}

【方法二】 

#include<bits/stdc++.h>
using namespace std;int main()
{int n,x,y;cin>>n>>x;int num1=0,num2=1;for(int i=1;i<n;i++){cin>>y;if(x+1==y){num2++;x=y;}else{if(num2>num1){num1=num2;num2=1;}x=y;}}int maxn=max(num1,num2);cout<<maxn;return 0;
}

 

 P1075 [NOIP 2012 普及组] 质因数分解

P1075 [NOIP 2012 普及组] 质因数分解 - 洛谷

 在2~i*i<n之间找到的是较小的质数

#include<bits/stdc++.h>
using namespace std;bool isPrime(int x)
{for(int i=2;i*i<=x;i++){if(x%i==0)return 0;}return 1;
}int main()
{int n;cin>>n;int p;for(int i=2;i*i<=n;i++){if(n%i==0 && isPrime(i)==true){p=i;break;}}cout<<n/p;return 0;
}

P5725 【深基4.习8】求三角形

P5725 【深基4.习8】求三角形 - 洛谷

 

 循环嵌套

#include<bits/stdc++.h>
using namespace std;int main()
{int n;cin>>n;int m=1;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){cout<<setfill('0')<<setw(2)<<m;m++;}cout<<endl;	}cout<<endl;m=1;int num=1;for(int i=1;i<=n;i++){for(int j=1;j<=n-i;j++){cout<<"  ";}for(int j=n-i+1;j<=n;j++){cout<<setfill('0')<<setw(2)<<m;m++;}cout<<endl;}return 0;
}

 

P5726 【深基4.习9】打分

P5726 【深基4.习9】打分 - 洛谷

 double!!!

#include<bits/stdc++.h>
using namespace std;int main()
{int n,a;cin>>n>>a;int sum=a;int max=a;int min=a;for(int i=2;i<=n;i++){cin>>a;if(a>max){max=a;}if(a<min){min=a;}sum+=a;}sum-=max+min;double ans=(double)sum/(n-2);cout<<fixed<<setprecision(2)<<ans;return 0;
}
http://www.xdnf.cn/news/15890.html

相关文章:

  • 基于单片机出租车计价器设计
  • 30天打牢数模基础-决策树讲解
  • 【C语言】字符串与字符函数详解(上)
  • C++ 并发 future, promise和async
  • 数位 dp
  • 「Java案例」利用方法打印乘法表
  • WPF学习笔记(28)Interaction.Triggers的意义与使用方式
  • dify创建OCR工作流
  • NX584NX559美光固态闪存NX561NW993
  • AI(学习笔记第六课) 使用langchain进行AI开发 load documents(csv和文件夹)
  • 开源社区贡献指南:如何通过Three.js插件开发提升企业技术影响力?
  • Windows批量修改文件属性方法
  • swift-关联性/范型
  • 每日算法刷题Day50:7.20:leetcode 栈8道题,用时2h30min
  • 深度学习方法生成抓取位姿与6D姿态估计的完整实现
  • Python应用进阶DAY10--模块化编程概念(模块、包、导入)及常见系统模块总结和第三方模块管理
  • 设计模式笔记(1)简单工厂模式
  • 【图论】图的定义与一些常用术语
  • thinkphp8\guzzlehttp上传文件应用示例
  • Linux基础命令详解:从入门到精通
  • prometheus 黑盒监控和docker检测
  • git操作
  • Node.js:常用工具、GET/POST请求的写法、工具模块
  • ByteBuf 体系的设计与实现
  • `tidyverse` 长表、宽表的处理
  • 【HarmonyOS】ArkUI - 自定义组件和结构重用
  • 处理Electron Builder 创建新进程错误 spawn ENOMEM
  • Spring AI 聊天记忆
  • 28.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--币种服务(二)
  • Spring Boot 配置文件解析