函数练习
1.各位数字之和
题目描述
输入一个任意位正整数,输出各位数字之和。
输入
输入一行,1 个整数n,n ≤ 2147483647(INT_MAX)。
输出
输出一行,1 个整数。
样例
输入 复制
123454321
输出 复制
25
#include<bits/stdc++.h>
using namespace std;
int s=0;
int sum(int x){
while(x!=0){
s+=x%10;
x/=10;
}
return s;
}
int main()
{
int n;
cin>>n;
cout<<sum(n);
return 0;
}
- 数字之和为13的整数
题目描述
求出1000以内的整数,使其数字之和为13,每行输出8个数。 例如:
数85,其数字之和为8+5=13
数373,其数字之和为3+7+3=13
输入
无
输出
所有符合条件的整数,按从小到大的顺序输出,每行8个,数与数之间用一个空格隔开。
样例
输入 复制
无
输出 复制
无
#include<bits/stdc++.h>
using namespace std;
int main(){
int temp,sum,cnt=0;
for(int i=13;i<=1000;i++){
temp=i;
sum=0;
while(temp){
sum+=temp%10;
temp/=10;
}
if(sum==13){
cout<<i<<" ";
cnt++;
}
if(cnt==8){
cout<<endl;
cnt=0;
}
}
return 0;
}
倒序数
时间限制: 1.000 Sec 内存限制: 128 MB
提交: 3324 解决: 2765
[命题人:][下载数据: ?]
题目描述
输入一个任意位数的正整数,将这个数倒序组成一个新数并输出。
输入
输出一行,一个整数n。(0 ≤ n ≤ 10亿)
输出
输入一行,一个整数,表示n的倒序数。
样例
输入1 复制
12345
输出1 复制
54321
输入2 复制
520
输出2 复制
25
#include<bits/stdc++.h>
using namespace std;
int as(int x)
{
int s=0;
while(x)
{
s=s*10+x%10;
x/=10;
}
return s;
}
int main()
{
int n;
cin>>n;
cout<<as(n);
}
约数和
时间限制: 1.000 Sec 内存限制: 128 MB
提交: 1774 解决: 1149
[命题人:][下载数据: ?]
题目描述
输入一个自然数n,求这个数所有约数的和。
输入
输入一个自然数n(n<1000000000)。
输出
一个正整数。
样例
输入 复制
25
输出 复制
31
#include<bits/stdc++.h>
using namespace std;
long long hhh(long long x)
{
long long s=0;
for(int i=1;i<=sqrt(x);i++)
{
if(x%i==0)
{
s+=i+x/i;
}
if(i*i==x)
{
s-=i;
}
}
return s;
}
int main()
{
long long n;
cin>>n;
cout<<hhh(n);
return 0;
}
真约数和
时间限制: 1.000 Sec 内存限制: 128 MB
提交: 2526 解决: 1839
[命题人:][下载数据: ?]
题目描述
一个数的“真约数”,就是指不包括自己的约数。例如:
6 的真约数有:1、2、3。6的真约数和为 1+2+3=6。
12 的真约数有:1、2、3、4、6。12的真约数和为 16。
15 的真约数有:1、3、5。 15的真约数和为 9。
49的真约数有:1、7。 49的真约数和为 8。
97654321是个质数。 97654321的真约数和为 1。
现在,输入一个整数,很快地算一下它的所有真约数的和,会有什么有趣的发现呢。
输入
一个整数 n(0 < n <=20 亿)。
输出
一个整数,表示 n 的所有真约数的和。
样例
输入 复制
220
输出 复制
284
#include<bits/stdc++.h>
using namespace std;
long long hhh(long long x)
{
long long s=0;
for(int i=1;i<=sqrt(x);i++)
{
if(x%i==0)
{
s+=i+x/i;
}
if(i*i==x)
{
s-=i;
}
}
return s;
}
int main()
{
long long n;
cin>>n;
cout<<hhh(n)-n;
return 0;
}
判素数
题目描述
任意输入一个整数,判断它是否为素数。是的话输出"1",不是的话输出"0"。
输入
输入一个正整数
输出
1或者0
样例
输入 复制
6
输出 复制
0
#include<bits/stdc++.h>
using namespace std;
bool isprime(int x){
if(x<2)return 0;
for(int i=2;i<=sqrt(x);i++){
if(x%i==0)return 0;
}
return 1;
}
int main(){
int n;
cin>>n;
cout<<isprime(n);
return 0;
}
约数和判质
时间限制: 1.000 Sec 内存限制: 128 MB
提交: 1175 解决: 933
[命题人:][下载数据: ?]
题目描述
从键盘上任意输入一个数n,请你编程求这个数的约数和s,再判断s是否为质数。
输入
输入一个自然数n
输出
T或者F
样例
输入 复制
6
输出 复制
F
#include<bits/stdc++.h>
using namespace std;
long long ysh(long long x)
{
long long s=0;
for(int i=1;i<=sqrt(x);i++)
{
if(x%i==0)
{
s+=i+x/i;
}
if(i*i==x)
{
s-=i;
}
}
return s;
}
bool zsh(long long x)
{
if(x<2)return 0;
for(int i=2;i<=sqrt(x);i++)
{
if(x%i==0)
{
return 0;
}
}
return 1;
}
int main()
{
long long n;
cin>>n;
if(zsh(ysh(n)))cout<<"T";
else cout<<"F";
return 0;
}
判回文数
时间限制: 1.000 Sec 内存限制: 128 MB
提交: 1283 解决: 1187
[命题人:][下载数据: ?]
题目描述
从左向右读与从右向左读是同一个数的数为回文数。比如19391是回文数。
输入一个任意位数的正整数,判断这个数是否回文数。是则输出‘yes’,否则输出‘no’。
输入
输入一行,一个整数n (1≤n≤21亿)。
输出
输出一行,一个字符串。
是回文数输出“yes”,不是回文数输出“no”。
样例
输入 复制
19391
输出 复制
yes
#include<bits/stdc++.h>
using namespace std;
void hw(long long x){
long long s=0,t=x;
bool f=1;
while(x){
s=s*10+x%10;
x/=10;
}
if(s==t){
cout<<"yes";
}
else cout<<"no";
}
int main()
{
long long n;
cin>>n;
hw(n);
return 0;
}
回文完全平方数
时间限制: 1.000 Sec 内存限制: 128 MB
提交: 960 解决: 782
[命题人:][下载数据: ?]
题目描述
一个两位以上的自然数,如果左右数字对称,就称为回文数,
编程找出所有不超过6位数字的回文数,同时又是完全平方数的数。
比如:121是回文数,又是11的平方,所以121满足条件。
输入
无
输出
若干行,每行一个回文完全平方数,从小到大输出。
样例
输入 复制
无
输出 复制
121
……
12321
……
#include<bits/stdc++.h>
using namespace std;
bool hw(long long x)
{
long long s=0,t=x;
while(x)
{
s=s*10+x%10;
x/=10;
}
return s==t;
}
int main()
{
for(int i=10;i<=999999;i++)
{
int x=sqrt(i);
if(x*x==i&&hw(i))
{
cout<<i<<endl;
}
}
}
哥德巴赫猜想1-一个拆两个
时间限制: 1.000 Sec 内存限制: 128 MB
提交: 663 解决: 456
[命题人:][下载数据: ?]
题目描述
哥德巴赫提出了以下的猜想:任何一个大于2的偶数都可以表示成2个质数之和。
质数是指除了1和本身之外没有其他约数的数。
如2和11都是质数。而6不是质数,因为6除了约数1和6之外还有约数2和3。
需要特别说明的是1不是质数。
请你编一个程序验证哥德巴赫猜想。
输入
一个大于 2 的偶数 n。
输出
多行,由两个素数之和组成的表达式,每组第一个数字要从小到大排列。
一组或多组由两个素数之和组成的表达式。
每组第一个数字要从小到大排列。
样例
输入 复制
14
输出 复制
3+11
7+7
#include<iostream>
#include<math.h>
using namespace std;
int ss(int x)
{
if(x<2)return 0;
for(int i=2;i<=sqrt(x);i++)
{
if(x%i==0) return 0;
}
return 1;
}
int main()
{
int n;
cin>>n;
for(int i=2;i<=n/2;i++){
if(ss(i)){
if(ss(n-i)){
cout<<i<<"+"<<n-i<<endl;
}
}
}
return 0;
}
午夜烧脑
时间限制: 1.000 Sec 内存限制: 256 MB
提交: 142 解决: 119
[命题人:][下载数据: ?]
题目描述
小J 将在2023年的最后一天参加一场名为“午夜烧脑”的比赛。比赛于20:00 开始,持续四个小时,正好到午夜。届时会有n个问题,按难度排序,即问题1是最简单的,问题n是最难的。小J 知道他需要 5*i 分钟来解决第 i 个问题。
小J 的朋友组织了一个除夕聚会,他想在午夜或更早的时候到场,当然他得先参加比赛。
从家到聚会地点需要 k 分钟。问题是如果小J 想准时赶到聚会地点,他最多能AC(信心满满,交的题目都过)多少道题目?
输入
一行,两个整数 n 和 k(1≤n≤10,1≤k≤240),表示比赛中的问题数和小J 从家里到聚会地点的时间。
输出
一个整数,表示小J 能够解决的最大问题数,以便他能够在午夜或更早的时候到达聚会地点。
样例
输入1 复制
3 222
输出1 复制
2
输入2 复制
4 190
输出2 复制
4
输入3 复制
7 1
输出3 复制
7
#include <iostream>
using namespace std;
void ac(int n,int t){
t=4*60-t;
int s=0;
for(int i=1;i<=n;i++){
s+=5*i;
if(s>t){
cout<<i-1;
return;
}
}
cout<<n;
}
int main()
{
int n,t;
cin>>n>>t;
ac(n,t);
return 0;
}
灯带
时间限制: 1.000 Sec 内存限制: 256 MB
提交: 157 解决: 100
[命题人:][下载数据: ?]
题目描述
Jz 镇市民广场一处灯带连成一条直线,由四种颜色的灯泡组成:红、蓝、黄、绿。灯带的制作规则为:任取四个连续的灯泡,不会有同颜色的存在。例如,灯带可以看起来像"YBGRYBGRYB"、“RYGBRYGBRYG”、"GYRBG"这样,但不能像 “BRYGR”、"GRBYRBYGR "或 "GBYGYG"这样。这里 "R"代表红色,"B"表示蓝色,“Y”-黄色,“G”-绿色。
由于时间久远,一些灯泡已经熄灭不在工作,但每一种颜色至少有一个灯还亮着,利用给出的灯光排列信息,计算四种颜色的坏灯泡数量。
输入
一行,一个长为 n 的字符串s (4 ≤ n ≤ 100),它描述了灯带的运行状态,其中第 i 个字符描述了第 i 个灯泡的颜色:
‘R’ - 灯泡是红色的;
‘B’ - 灯泡是蓝色的;
‘Y’ - 灯泡是黄色的;
‘G’ - 灯泡是绿色的;
‘!’ - 灯泡坏了。
除了上述的五个字符外,字符串s不包含其他字符。
数据保证给定的字符串 ‘R’、‘B’、‘Y’ 和 ‘G’ 四个字母各至少出现一次。
输出
四个整数 sr, sb, sy, sg,表示红、蓝、黄、绿颜色坏灯泡的数量。
样例
输入1 复制
RYBGRYBGR
输出1 复制
0 0 0 0
输入2 复制
!RGYB
输出2 复制
0 1 0 0
输入3 复制
!!!YGRB
输出3 复制
1 1 1 1
输入4 复制
!GB!RG!Y!
输出4 复制
2 1 1 0
#include<bits/stdc++.h>
using namespace std;
string s;
int a[5]={};
void dp(int sr,int sb,int sy,int sg){
cin>>s;
for(int i=0;i<s.size();i++){
if(s[i]=='R')sr=i%4;
else if(s[i]=='B')sb=i%4;
else if(s[i]=='Y')sy=i%4;
else if(s[i]=='G')sg=i%4;
else a[i%4]++;
}
cout<<a[sr]<<" "<<a[sb]<<" "<<a[sy]<<" "<<a[sg];
}
int main()
{
int sr,sb,sy,sg;
dp(sr,sb,sy,sg);
return 0;
}
挑战求和4
时间限制: 1.000 Sec 内存限制: 128 MB
提交: 691 解决: 602
[命题人:][下载数据: ?]
题目描述
输入一个正整数n,求1!-2!+3!-4!+……+N!的结果.
输入
一个正整数n
样例
输入 复制
3
输出 复制
5
提示
5=1-(12)+(12*3)
#include<bits/stdc++.h>
using namespace std;
int jc(int x){
int c=1;
int s=0;
for(int i=1;i<=x;i++){
c*=i;
if(i%2==0){
s-=c;
}
else s+=c;
}
return s;
}
int main()
{
int x;
cin>>x;
cout<<jc(x);
return 0;
}
【入门】喜羊羊运动会——比比口算能力
时间限制: 1.000 Sec 内存限制: 64 MB
提交: 5097 解决: 3569
[命题人:][下载数据: ?]
题目描述
题目很简单,考官给出3个整数a、b、c。 M=max( a, b, c ) / [ max( a+b, b, c ) * max( a, b, b+c ) ], max(a,b,c)表示a,b,c三个整数中最大的一个整数,max(a+b,b,c)和max(a,b,b+c)以此类推。试计算M的值(保留六位小数)。 如a=7,b=4,c=6。 则M=max(7, 4, 6)/ [ max( 7+4, 4, 6 ) * max( 7, 4, 4+6 ) ]=7/ [11*10]=0.063636
输入
一行,三个整数a,b,c(1 <= a,b,c <=10000 )。
输出
一行,一个整数M(保留六位小数)。
样例
输入 复制
7 4 6
输出 复制
0.063636
#include<bits/stdc++.h>
using namespace std;
void ks(int a,int b,int c)
{
double m,m1,m2,m3;
m1=max(max(a,b),c);
m2=max(max(a+b,b),c);
m3=max(max(a,b),b+c);
m=1.0*m1/(m2*m3);
cout<<fixed<<setprecision(6)<<m;
}
int main()
{
int a,b,c;
cin>>a>>b>>c;
ks(a,b,c);
return 0;
}
【入门】挛生素数
时间限制: 1.000 Sec 内存限制: 16 MB
提交: 8408 解决: 4997
[命题人:][下载数据: ?]
题目描述
我们定义,如果a和a+2都是素数(如5和7),那么我们就称a和a+2是一对挛生素数。请写一个程序找出2-N之间的所有挛生素数。
输入
一个整数N( 2 < N < 1000 )。
输出
若干行,每行两个整数,即一对挛生素数。
样例
输入 复制
10
输出 复制
3 5
5 7
#include<bits/stdc++.h>
using namespace std;
bool s(int n)
{
if(n<2)return 0;
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)return 0;
}
return 1;
}
int main()
{
int n;
cin>>n;
for(int i=2;i<=n-2;i++)
{
if(s(i)==1&&s(i+2)==1)cout<<i<<" "<<i+2<<endl;
}
return 0;
}
哥德巴赫猜想2-多个拆两个
时间限制: 1.000 Sec 内存限制: 16 MB
提交: 8477 解决: 5307
[命题人:][下载数据: ?]
题目描述
任一个大于等于4的偶数都可以拆分为两个素数之和。
输入
一个整数n( 4 <= n <= 200 )
输出
将小于等于n的偶数拆分为2个质数之和,列出所有方案!
样例
输入 复制
10
输出 复制
4=2+2
6=3+3
8=3+5
10=3+7
10=5+5
#include<bits/stdc++.h>
using namespace std;
bool s(int n)
{
if(n<2)return 0;
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)return 0;
}
return 1;
}
int main()
{
int n;
cin>>n;
for(int i=2;i<=n;i++){
if(i%2!=0)continue;
for(int j=1;j<=i/2;j++)
{
if(s(j)==1&&s(i-j)==1)cout<<i<<"="<<j<<"+"<<i-j<<endl;
}
}
return 0;
}
【基础】亲密数对
时间限制: 2.000 Sec 内存限制: 16 MB
提交: 8150 解决: 3936
[命题人:][下载数据: ?]
题目描述
键盘输入N,N在2至2000之间,求2至N中的亲密数对。
就是A的(去掉1和自己的)因子和等于B,B的(去掉1和自己)因子和等于A,且A≠B。
如48和75是亲密数对。
48的因子和为2+3+4+6+8+12+16+24=75,
而75的因子和为3+5+15+25=48。
输入
只有一行,为一个整数N( 2<=N<=2000 )
输出
输出若干行,每行两个整数(用一个空格隔开)。
样例
输入 复制
200
输出 复制
48 75
75 48
140 195
195 140
#include<bits/stdc++.h>
using namespace std;
int ys(int x){
int s=0;
for(int i=2;i<=sqrt(x);i++){
if(x%i==0){
s+=i+x/i;
}
if(i*i==x){
s-=i;
}
}
return s;
}
int main()
{
int n;
cin>>n;
for(int i=2;i<=n;i++){
int y=ys(i);
if(ys(y)==i&&i!=y&&y<n){
cout<<i<<" "<<y<<endl;
}
}
return 0;
}
求组合的个数
时间限制: 1.000 Sec 内存限制: 128 MB
提交: 2268 解决: 2182
[命题人:][下载数据: ?]
题目描述
从1到n这些整数中,选m个数的组合的个数。用这个公式计算:
n!是n的阶乘表示123*……*n
输入
两个整数 n m
输出
一个整数
样例
输入 复制
4 2
输出 复制
6
提示
组合个数的结果肯定是整数。
n,m<=10
关于组合还有一个递推公式
C(n,m)=C(n-1,m)+C(n-1,m-1)
C(n,0)=1
C(x,x)=1
#include<bits/stdc++.h>
using namespace std;
long long jc(long long a)
{
long long s=1;
for(long long i=1;i<=a;i++)
{
s*=i;
}
return s;
}
int main()
{
long long n,m;
cin>>n>>m;
cout<<jc(n)/(jc(m)*jc(n-m));
return 0;
}
哥德巴赫猜想4-先统计方案
时间限制: 1.000 Sec 内存限制: 64 MB
提交: 1571 解决: 1047
[命题人:][下载数据: ?]
题目描述
求出哥德巴赫猜想的所有解(将一个大于9的奇数拆分成三个素数之和),并按从小到的顺序写出。
输入
一行,一个大于9的奇数(<100)。
输出
第一行,一个整数N,表示解的总数。 第2-N+1行,每行一个解。
样例
输入 复制
15
输出 复制
3
15=2+2+11
15=3+5+7
15=5+5+5
#include<bits/stdc++.h>
using namespace std;
bool ss(int x){
if(x<2)return 0;
for(int i=2;i<=sqrt(x);i++){
if(x%i==0)return 0;
}
return 1;
}
int main()
{
int x,s=0;
cin>>x;
for(int i=2;i<=x/3;i++){
for(int j=i;j<=x/2;j++){
int k=x-i-j;
if(ss(i)&&ss(j)&&ss(k)&&k>=j){
s++;
}
}
}
cout<<s<<endl;
for(int i=2;i<=x/3;i++){
for(int j=i;j<=x/2;j++){
int k=x-i-j;
if(ss(i)&&ss(j)&&ss(k)&&k>=j){
cout<<x<<"="<<i<<"+"<<j<<"+"<<k<<endl;
}
}
}
return 0;
}
寻找完美数4-k重完全数
时间限制: 1.000 Sec 内存限制: 128 MB
提交: 413 解决: 349
[命题人:][下载数据: ?]
题目描述
一个数n为k重完全数,当且仅当S(n)=kn,S(n)表示n的所有约数之和,
如6就是一个2重完全数,因为6的约数(即能被6整除的自然数)为1、2、3、6,所以S(6)=1+2+3+6=26。
现在需要你找出1到n之间所有的k重完全数。
输入
输入数据仅有一行包含两个整数n和k。其中n≤50000,k<5。
输出
按从小到大的次序依次输出求得的k重完全数,每行输出一个数。
样例
输入 复制
100 2
输出 复制
6
28
#include<bits/stdc++.h>
using namespace std;
int ysh(int x){
int s=0;
for(int i=1;i<=sqrt(x);i++){
if(x%i==0)s+=i+x/i;
if(i*i==x)s-=i;
}
return s;
}
int main()
{
int x,y;
cin>>x>>y;
for(int i=1;i<=x;i++){
int z=ysh(i);
if(z==y*i){
cout<<i<<endl;
}
}
return 0;
}
最大公约数2
时间限制: 1.000 Sec 内存限制: 128 MB
提交: 1026 解决: 906
[命题人:][下载数据: ?]
题目描述
求两个自然数M和N的最大公约数。(0<=m,n<=100000000)
输入
输入一行,包括两个整数.
输出
输出只有一行(这意味着末尾有一个回车符号),包括1个整数。
样例
输入 复制
45 60
输出 复制
15
#include<bits/stdc++.h>
using namespace std;
int gcd(int x,int y){
int r=x%y;
while(r){
x=y;
y=r;
r=x%y;
}
return y;
}
int main()
{
int x,y;
cin>>x>>y;
cout<<gcd(x,y);
return 0;
}
密码尝试
时间限制: 1.000 Sec 内存限制: 256 MB
提交: 105 解决: 62
[命题人:][下载数据: ?]
题目描述
小J 成功进入了他最喜欢的网站 Jzoj.cn。小J 在他访问过的网站上注册使用了 n 个不同的密码,但他不记得自己在注册 Jzoj.cn 时到底指定了哪个密码。
小J 会按照密码长度不递减的顺序输入密码,他还会按照任意顺序输入相同长度的密码。当 小J 输入正确的密码后,他就可以立即登录网站。小J 不会重复输入任何密码。
对 小J 来说,输入任何密码都只需一秒钟的时间。但如果 小J 输入了 k 次错误密码,那么他需要等待 5 秒钟才能进行下一次尝试。小J 每次尝试都是立即进行的,也就是说,在小J 能够输入密码的每一时刻,他都在进行尝试。
请计算在最好的情况下(尽可能缩短输入时间)和在最坏的情况下(尽可能延长输入时间),小J 需要多少秒才能输入正确的密码从而登陆 Jzoj.cn。
输入
第一行,两个整数 n 和 k(1 ≤ n,k ≤ 100),即小J 的密码数和尝试失败的次数,尝试失败后,网站访问将被阻止 5 秒。
接下来的 n 行,每行一个密码,由英文字母和数字组成的非空字符串,长度不超过 100 个字符。
最后一行,小J 的 Jzoj.cn 的密码。保证小J 的密码等于他的 n 个密码中的某个密码。
输出
两个整数,分别表示小J 在最好和最坏情况下成功登陆 Jzoj.cn 的时间。
样例
输入1 复制
5 2
cba
abc
bb1
abC
ABC
abc
输出1 复制
1 15
输入2 复制
4 100
11
22
1
2
22
输出2 复制
3 4
提示
【样例解释】
样例1。所有密码的长度相同,小J 可以在第一次尝试和最后一次尝试时输入正确的密码。如果他在第一次尝试时输入正确的密码,那么他正好花费 1 秒钟。如果在最后一次尝试时输入密码,那么他在此之前又输入了 4 个密码。他先花 2 秒钟输入前 2 个密码,然后等 5 秒钟,然后他再花 2 秒钟输入 2 个错误密码,再次等待 5 秒钟,最后再花 1 秒钟输入正确密码。总之,在最坏的情况下,他能在 15 秒内成功登陆。
样例2。所需的密码长度为 2,小J 会输入所有长度为 1 的密码,这样就会花费 2 秒钟。然后,在最好的情况下,他立即输入正确的密码,最好情况的答案是 3,但在最坏的情况下,他输入了长度为 2 的错误密码,然后才输入正确的密码,总共花费了 4 秒钟。
#include<bits/stdc++.h>
using namespace std;
string s;
int n,k,maxs,mins,a[110];
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>s;
int len=s.size();
a[len]++;
}
cin>>s;
int lens=s.size();
for(int i=1;i<=100;i++){
a[i]=a[i-1]+a[i];
}
mins=a[lens-1]+1;
maxs=a[lens];
mins=(mins-1)/k*5+mins;
maxs=(maxs-1)/k*5+maxs;
cout<<mins<<" "<<maxs;
return 0;
}
【基础】约瑟夫问题
时间限制: 1.000 Sec 内存限制: 16 MB
提交: 10652 解决: 6542
[命题人:][下载数据: ?]
题目描述
有M个人,其编号分别为1-M。这M个人按顺序排成一个圈。现在给定一个数N,从第一个人开始依次报数,数到N的人出列,然后又从下一个人开始又从1开始依次报数,数到N的人又出列...如此循环,直到最后一个人出列为止。
输入
输入只有一行,包括2个整数M(8 <= M <= 15 ),N( 5 <= N <= 32767 )。之间用一个空格分开。
输出
按出列顺序输出出列人的编号,每行一个整数。
样例
输入 复制
8 5
输出 复制
5
2
8
7
1
4
6
3
#include<bits/stdc++.h>
using namespace std;
int i,top,a[35],s=0,k=0,n,m;
int main(){
cin>>m>>n;
for(int i=1;i<=m;i++){
a[i]=0;//全都未出列
}
top=1;
i=top;
while(s<m){
if(i>m)i=1;
if(a[i]==0)k++;
if(k==n){
a[i]=1;
cout<<i<<endl;
k=0;
s++;
}
i++;
}
return 0;
}
【入门】纯粹素数
时间限制: 1.000 Sec 内存限制: 16 MB
提交: 11485 解决: 5330
[命题人:][下载数据: ?]
题目描述
纯粹素数是这样定义的:一个素数,去掉最高位,剩下的数仍为素数,再去掉剩下的数的最高位,余下的数还是素数。这样下去一直到最后剩下的个位数也还是素数。
2347 是素数;347 是素数;47 是素数;7是素数;所以2347是个纯粹的素数。
请求出所有小于n的四位的纯粹素数。
输入
一个整数
输出
按从小到大的顺序输出若干个纯粹素数,每行一个。
样例
输入 复制
1225
输出 复制
1013
1097
1103
1223
#include<bits/stdc++.h>
using namespace std;
int ss(int x){
if(x<2)return 0;
for(int i=2;i<=sqrt(x);i++){
if(x%i==0)return 0;
}
return 1;
}
int main()
{
int x;
cin>>x;
for(int i=1000;i<=x;i++){
if(ss(i)&&ss(i%1000)&&ss(i%100)&&ss(i%10))cout<<i<<endl;
}
return 0;
}
【入门】纯粹合数
时间限制: 1.000 Sec 内存限制: 16 MB
提交: 7850 解决: 3770
[命题人:][下载数据: ?]
题目描述
一个合数,去掉最低位,剩下的数仍是合数,再去掉剩下的数的最低位,余留下来的数还是合数,这样反复,一直到最后剩下的一位数仍是合数;我们把这样的数称为纯粹合数。求所有的三位纯粹合数。
输入
无
输出
若干个3位数 每行一个(从小到大)
提示
注意:1既不是合数也不是质数!
#include<bits/stdc++.h>
using namespace std;
int hs(int x){
if(x<2)return 0;
for(int i=2;i<=sqrt(x);i++){
if(x%i==0)return 1;
}
return 0;
}
int main()
{
for(int i=100;i<=999;i++){
if(hs(i)&&hs(i/10)&&hs(i/100))cout<<i<<endl;
}
return 0;
}
欢迎使用Markdown编辑器
你好
! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
新的改变
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
- 全新的界面设计 ,将会带来全新的写作体验;
- 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
- 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
- 全新的 KaTeX数学公式 语法;
- 增加了支持甘特图的mermaid语法1 功能;
- 增加了 多屏幕编辑 Markdown文章功能;
- 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
- 增加了 检查列表 功能。
功能快捷键
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G
合理的创建标题,有助于目录的生成
直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC
语法后生成一个完美的目录。
如何改变文本的样式
强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
引用文本
H2O is是液体。
210 运算结果是 1024.
插入链接与图片
链接: link.
图片:
带尺寸的图片:
居中的图片:
居中并且带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
如何插入一段漂亮的代码片
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted block
var foo = 'bar';
生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 项目1
- 项目2
- 项目3
- 计划任务
- 完成任务
创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
设定内容居中、居左、居右
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks | 'Isn't this fun?' | ‘Isn’t this fun?’ |
Quotes | "Isn't this fun?" | “Isn’t this fun?” |
Dashes | -- is en-dash, --- is em-dash | – is en-dash, — is em-dash |
创建一个自定义列表
-
Markdown
- Text-to- HTML conversion tool Authors
- John
- Luke
如何创建一个注脚
一个具有注脚的文本。2
注释也是必不可少的
Markdown将文本转换为 HTML。
KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
新的甘特图功能,丰富你的文章
- 关于 甘特图 语法,参考 这儿,
UML 图表
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:
这将产生一个流程图。:
- 关于 Mermaid 语法,参考 这儿,
FLowchart流程图
我们依旧会支持flowchart的流程图:
- 关于 Flowchart流程图 语法,参考 这儿.
导出与导入
导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
导入
如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
注脚的解释 ↩︎