说明:
见前两篇博客
题目列表:
![](https://img-blog.csdnimg.cn/direct/f47404245d6c465d82dbcec1ebcb4e66.png)
问题 0: 平面分割
参考题解:
#include <stdio.h>
int main(){
//问题 0: 平面分割
int m,n,p;scanf("%d",&m);
while(m--){
scanf("%d %d",&n,&p);
int ans = 2*p;
for(int i = p+1;i<=n;i++) ans+=i;
printf("%d\n",ans);
}
return 0;
}
问题 1: 数字反转
参考题解:
#include <stdio.h>
#include <string.h>
char s[1005];
int main(){
//问题 1: 数字反转
scanf("%s",&s[0]);
int type = 0;
if(s[0]=='-'){
printf("-");
for(int i = strlen(s)-1;i>=1;i--){
if(!type&&s[i]=='0') continue;
else{
type = 1;
printf("%c",s[i]);
}
}
}else{
for(int i = strlen(s)-1;i>=0;i--){
if(!type&&s[i]=='0') continue;
else{
type = 1;
printf("%c",s[i]);
}
}
}
return 0;
}
问题 2: 最大公约数和最小公倍数
参考题解1:
#include <stdio.h>
int main(){
//问题 2: 最大公约数和最小公倍数
int m,n;scanf("%d %d",&m,&n);
int temp;
if(m<n){
temp = m;
m = n;
n = temp;
}
int tempm = m,tempn = n;
while(tempm%tempn!=0){
temp = tempm;
tempm = tempn;
tempn = temp%tempn;
}
printf("%d %d",tempn,(m/tempn)*(n/tempn)*tempn);
return 0;
}
参考题解2:
#include <bits/stdc++.h>
using namespace std;
int main(){
//问题 2: 最大公约数和最小公倍数
int m,n;cin >> m >> n;
cout << __gcd(m,n) << ' ' << (m/__gcd(m,n))*(n/__gcd(m,n))*__gcd(m,n);
return 0;
}
问题 3: 数字统计
参考题解:
#include <stdio.h>
int main(){
//问题 3: 数字统计
int l,r;scanf("%d %d",&l,&r);
int ans = 0,temp;
for(int i = l;i<=r;i++){
temp = i;
while(temp!=0){
if(temp%10==2) ans++;
temp/=10;
}
}
printf("%d",ans);
return 0;
}
问题 4: 分数序列求和
参考题解:
#include <stdio.h>
int main(){
//问题 4: 分数序列求和
double a = 2,b = 1,ans = 0,temp;
int n;scanf("%d",&n);
for(int i = 1;i<=n;i++){
ans+=a/b;
temp=a;
a+=b;
b=temp;
}
printf("%.2lf",ans);
return 0;
}
问题 5: 增增减减
参考题解:
#include <stdio.h>
int main(){
//问题 5: 增增减减
int a,b;scanf("%d %d",&a,&b);
printf("%d",(a-1)*(b+1));
return 0;
}
问题 6: 提现手续费
参考题解:
#include <stdio.h>
int main(){
//问题 6: 提现手续费
int n;scanf("%d",&n);
if(n<=100) printf("0.10");
else printf("%.2lf",0.001*n);
return 0;
}
问题 7: 平均数
参考题解:
#include <stdio.h>
int main(){
//问题 7: 平均数
int n,temp;double ans;
while(~scanf("%d",&n)){
ans = 0;
for(int i = 1;i<=n;i++){
scanf("%d",&temp);
ans+=temp;
}
printf("%.3lf\n",ans/n);
}
return 0;
}
问题 8: 逆序输出
参考题解:
#include <stdio.h>
int a[11];
int main(){
//问题 8: 逆序输出
for(int i = 1;i<=10;i++) scanf("%d",&a[i]);
for(int i = 10;i>=1;i--){
if(i==10) printf("%d",a[i]);
else printf(" %d",a[i]);
}
return 0;
}
问题 9: 数组逆序重存放
参考题解:
#include <stdio.h>
int a[105];
int main(){
//问题 9: 数组逆序重存放
int n;scanf("%d",&n);
for(int i = 1;i<=n;i++) scanf("%d",&a[i]);
for(int i = n;i>=1;i--){
if(i==n) printf("%d",a[i]);
else printf(" %d",a[i]);
}
return 0;
}
问题 : 插队
参考题解:
#include <stdio.h>
int a[11];
int main(){
//问题 : 插队
for(int i = 1;i<=9;i++) scanf("%d",&a[i]);
int temp;scanf("%d",&temp);
int idx;
for(int i = 1;i<=9;i++) if(a[i]>=temp){idx=i;break;}
for(int i = 10;i>=idx+1;i--) a[i] = a[i-1];
a[idx] = temp;
for(int i = 1;i<=10;i++) printf("%d\n",a[i]);
return 0;
}
问题 : 冒泡法排序
参考题解:
#include <stdio.h>
int a[11];
int main(){
//问题 : 冒泡法排序
for(int i = 1;i<=10;i++) scanf("%d",&a[i]);
int temp;
for(int i = 1;i<=9;i++){
for(int j = 1;j<=10-i;j++){
if(a[j]>a[j+1]){
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for(int i = 1;i<=10;i++) printf("%d\n",a[i]);
return 0;
}
问题 : 筛法求素数
参考题解:
#include <stdio.h>
int a[1005];
int main(){
//问题 : 筛法求素数
int n;scanf("%d",&n);
for(int i = 2;i<=n;i++) a[i] = i;
for(int i = 2;i<=n;i++){
for(int j = 2;j<i;j++){
if(i%j==0) a[i] = 0;
}
}
for(int i = 2;i<=n;i++) if(a[i]) printf("%d\n",a[i]);
return 0;
}
问题 : 嘉航的加密程序
参考题解:
#include <stdio.h>
#include <string.h>
#define N int(1e5+5)
char s[N];
int main(){
//问题 : 嘉航的加密程序
int k;
gets(s);
scanf("%d",&k);
int len = strlen(s);
for(int i = 0;i<len;i++){
if(s[i]>='a'&&s[i]<='z'){
s[i] = 'a'+(s[i]-'a'+k%26)%26;
}else if(s[i]>='A'&&s[i]<='Z'){
s[i] = 'A'+(s[i]-'A'+k%26)%26;
}else if(s[i]>='0'&&s[i]<='9'){
s[i] = '0'+(s[i]-'0'+k%10)%10;
}
}
printf("%s",s);
return 0;
}
问题 : 交替字符倒三角形
参考题解:
#include <stdio.h>
int main(){
//问题 : 交替字符倒三角形
int n;scanf("%d",&n);
for(int i = 1;i<=n;i++){
for(int j = 1;j<=i-1;j++) printf(" ");
for(int j = 1;j<=2*(n+1-i)-1;j++){
if(j%2==1) printf("S");
else printf("T");
}
printf("\n");
}
return 0;
}