1、3281:【例46.3】 素数回文数的个数
[例 46.3] 素数回文数的个数
1408:素数回文数的个数
/*
3281:【例46.3】 素数回文数的个数
http://bas.ssoier.cn:8086/problem_show.php?pid=3281
https://blog.csdn.net/hipoole/article/details/103811257
*/
#include <iostream>
using namespace std;
bool isprime(int n){
if(n==1) return false;
if(n==2) return true;
for(int i=2;i*i<=n;i++)
if(n%i==0) return false;
return true;
}
bool ispalindrome(int n){
int a[5],len=0;
while(n){
a[len++]=n%10;
n=n/10;
}
for(int i=0,j=len-1;i<=j;i++,j--)
if(a[i]!=a[j]) return 0;
return 1;
}
int main(){
int n,ans=0;
cin>>n;
for(int i=11;i<=n;i++)
if(isprime(i) && ispalindrome(i))
ans++;
cout<<ans;
return 0;
}
2、3282:练46.1 求π的值
/*
3282:练46.1 求π的值
http://bas.ssoier.cn:8086/problem_show.php?pid=3282
*/
#include <bits/stdc++.h>
using namespace std;
double f(double x,int y)
{
double ans=1;
for(int i=1;i<=y;i++)
{
ans*=x;
}
return ans;
}
double arctanx(double x)
{
double ans=0.0;
for(int i=1;;i++)
{
double fz=f(x,2*i-1);
double fm=2*i-1;
double n=fz/fm;
if ( n<0.000001)
{
break;
}
if( i%2==1 )
{
ans+=fz/fm;
}
else
{
ans-=fz/fm;
}
}
return ans;
}
int main()
{
double pi=6*arctanx(1.0/sqrt(3));
printf("%.10lf",pi);
return 0;
}
3、3283:练46.2 求丑数
第73课 丑数 函数的应用
绝对值排序
丑数(c语言)
/*
丑数
只能被2 3 5整除的数
*/
#include<iostream>
#include<iomanip>
using namespace std;
bool choushu(int n)
{
/*
if (n==1)
{
return true;
}
*/
while(n%2==0)
{
n/=2;
}
while(n%3==0)
{
n/=3;
}
while(n%5==0)
{
n/=5;
}
return (n==1);
}
int main()
{
int num=0;
for(int i=1;i<=100;i++)
if(choushu(i))
{
//printf("%6d",i);
cout<<setw(6)<<i;
num++;
//if(num%10==0) cout<<endl;
if(!(num%10)) cout<<endl;
}
cout<<endl;
cout<<"个数:"<<num<<endl;
return 0;
}
/*
作业:
1156:求π的值
http://ybt.ssoier.cn:8088/problem_show.php?pid=1156
1157:哥德巴赫猜想
http://ybt.ssoier.cn:8088/problem_show.php?pid=1157
1397:简单算术表达式求值
http://ybt.ssoier.cn:8088/problem_show.php?pid=1397
*/
4、3284:练46.3 哥德巴赫猜想
练 46.3 哥德巴赫猜想
1157:哥德巴赫猜想
奥赛一本通题目精讲 函数专题 1157 哥德巴赫猜想
哥德巴赫猜想(信息学奥赛一本通-T1157)_哔哩哔哩_bilibili
《信息学奥赛一本通》题解_1157_哥德巴赫猜想__哔哩哔哩_bilibili
奥赛一本通题目精讲 函数专题 1157 哥德巴赫猜想_哔哩哔哩_bilibili
哥德巴赫猜想 C语言 编程题讲解_哔哩哔哩_bilibili
#include<iostream>
using namespace std;
int sushu(int x)
{
if(x<1) return 0;
if(x==2) return 1;
for(int i=2;i<=x-1;i++)
if(x%i==0) return 0;
return 1;
}
int main()
{
int n,i,j;
cin>>n;
for(i=4;i<=n;i+=2)
{
for(j=2;j<i;j++)
if(sushu(j))
if(sushu(i-j))
{
cout<<i<<'='<<j<<'+'<<i-j<<endl;
break;
}
}
return 0;
}
//china
/*
作业:
P5735 【深基7.例1】距离函数
https://www.luogu.com.cn/problem/P5735
P5736 【深基7.例2】质数筛
https://www.luogu.com.cn/problem/P5736
P5737 【深基7.例3】闰年展示
https://www.luogu.com.cn/problem/P5737
*/
5、3285:练46.4 第N个智慧数
【力扣每日一题刷题记录】【第N个数字】【含解题代码C++】
计蒜客 - 第N个智慧数字
51Nod 2141 第N个智慧数 c/c++题解
/*
3285:练46.4 第N个智慧数
http://bas.ssoier.cn:8086/problem_show.php?pid=3285
计蒜客 - 第N个智慧数字
https://blog.csdn.net/qq_43658924/article/details/99614170
*/
#include<iostream>
#include<set>
using namespace std;
#define ll long long
int main()
{
ll n,m,a;
set<long long> st;
while(cin>>n)
//满足多组数据在线测试
//eof结束即可
{
for(ll i=1;i<500;i++)
for(ll j=i+1;j<=500;j++)
{
a=j*j-i*i;
st.insert(a);
}
set<long long >::iterator i;
ll j=1;
for(i=st.begin();i!=st.end();i++,j++)
{
if(j==n) cout<<*i;
}
cout<<endl;
}
return 0;
}
6、3286:【例47.1】 倒序数
[例 47.1] 倒序数
1160:倒序数
1160:倒序数
倒序数(信息学奥赛一本通-T1160)_哔哩哔哩_bilibili
/*
3286:【例47.1】 倒序数
http://bas.ssoier.cn:8086/problem_show.php?pid=3286
1160:倒序数[递归]
https://blog.csdn.net/Tristal2010/article/details/121732187
*/
#include<iostream> //使用iostream库
#include<cstdio> //使用cstdio库
using namespace std;
int a(int y)//用来算最高为的函数
{
int i;
for(i=10;y/i>=10;i*=10)//一直缩位
{}
return i;//最后输出
}
int d(int x) //运用递归的d函数
{
if(x<10) //停止的条件
return x;
else //递归关系式
return (x%10)*a(x)+d(x/10);
}
int main() //主函数
{
int a;//要被倒序的数
cin>>a;//输入
cout<<d(a);//输出
return 0;
}
7、3287:【例47.2】 转进制
[例 47.2] 转进制
1161:转进制
1161:转进制
转进制(信息学奥赛一本通-T1161)_哔哩哔哩_bilibili
奥赛一本通题目精讲 函数专题 1161 转进制 函数与递归写法_哔哩哔哩_bilibili
信息学奥赛一本通题目详解【递归】1161_转进制_哔哩哔哩_bilibili
/*
电子协会 C语言 3级 3 、十进制转任意进制
1161:转进制
http://ybt.ssoier.cn:8088/problem_show.php?pid=1161
用递归算法将一个十进制数 X 转换成任意进制数 M(M≤16)。
输入:一行两个数,第一个十进制数 X,第二个为进制 M。
输出:输出结果。
输入样例
31 16 {将十进制 31 转化为十六进制数}
输出样例
1F
*/
#include<iostream>
using namespace std;
void cal(int n,int k)
{
char num[16]= {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int temp;
temp=n%k;
n/=k;
if(n!=0)//判断是否到达边界 n=0
cal(n,k);
cout<<num[temp];
}
int main()
{
int x,m;
cin>>x>>m;//输入十进制数 x 与要转换成的进制 m
cal(x,m);//调用函数进行转换
return 0;
}
8、3288:【例47.3】 最大公约数
[例 47.3] 最大公约数
1207:求最大公约数问题
信奥一本通_1207最大公约数
递归-P25:《1207求最大公约数问题》-信奥一本通_哔哩哔哩_bilibili
1627:【例 3】最大公约数
1915:【01NOIP普及组】最大公约数与最小公倍数
2021:【例4.6】最大公约数
第43课 最大公约数 《小学生C++趣味编程》
第43课 最大公约数 动动脑 第2题《小学生C++趣味编程》
第43课 最大公约数 动动脑 第3题《小学生C++趣味编程》
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a,b;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a>>b;
cout<<__gcd(a,b)<<endl;
}
return 0;
}
9、3289:练47.1 交作业
第77课 交作业啦(递归算法)
/*
第77课 交作业啦(递归算法)
利用递归算法,试编一程序,算一算我收到多少本作业。
*/
#include<iostream>
using namespace std;
int zuoye(int n)
{
if(n==7)
return 1;
else
return zuoye(n+1)+1;
}
int main()
{
cout<<zuoye(1)<<endl;
return 0;
}
/*
zuoye(1)=7 zuoye(2)+1
zuoye(2)=6 zuoye(3)+1
zuoye(3)=5 zuoye(4)+1
zuoye(4)=4 zuoye(5)+1
zuoye(5)=3 zuoye(6)+1
zuoye(6)=2 zuoye(7)+1=2
*/
/*
?动动脑
1、函数的递归调用是通过()来实现的。
A、线性表 B、链表 C、队列 D、栈
作业:
1163:阿克曼(Ackmann)函数
http://ybt.ssoier.cn:8088/problem_show.php?pid=1163
1158:求1+2+3+...
http://ybt.ssoier.cn:8088/problem_show.php?pid=1158
1404:我家的门牌号
http://ybt.ssoier.cn:8088/problem_show.php?pid=1404
*/
10、3290:练47.2 通力合作
/*
第78课 通力合作的100个数
利用递归算法,试编一程序,输出1-100的自然数。
*/
#include<iostream>
#include<iomanip>
using namespace std;
void show(int n); //函数的说明
int main()
{
int n=100;
show(n);
return 0;
}
void show(int n)
{
if(n!=1)
{
show(n-1);
}
cout<<setw(5)<<n;
return; //没有返回值,但需要返回到调用这个函数的位置
}
/*
void show(int 2)
{
if(n!=1)
{
show(1);
}
cout<<setw(5)<<n;
return; //没有返回值,但需要返回到调用这个函数的位置
}
show(100); show(99) show(98) ......show(1)
1 2 3 4 100
1、已知队列中依次存在下列元素{88,79,65,10,100},若第一个出队列的元素是88
,则第四个出队列的元素是( C)
A、79 B、65 C、10 D、100
作业:
P5740 【深基7.例9】最厉害的学生
https://www.luogu.com.cn/problem/P5740
P5741 【深基7.例10】旗鼓相当的对手 - 加强版
https://www.luogu.com.cn/problem/P5741
P5742 【深基7.例11】评等级
https://www.luogu.com.cn/problem/P5742
*/
1、啊哈编程星球
适用于:编程初学者、小学一至三年级
2、慧通教育
适用于:编程初学者、小学生编程入门
3、《信息学奥赛一本通 编程启蒙》C++版
适用于:编程初学者、小学生编程启蒙
争取在小学1-4年级就将2、3两个题库的全部或大部分题 做完
为进一步深入学习信奥打好坚实的基础
4、信息学奥赛一本通
5、洛谷
洛谷题单广场
6、AcWing
7、编程魔法师