2011 多项式求和
#include<bits/stdc++.h>
int main(){
int n;
while(~scanf("%d",&n)){
int m;
for(int i=0;i<n;i++){
scanf("%d",&m);
double addition=0;
for(int j=1;j<=m;j++){
addition += pow(-1,j-1)*1/j;
}
printf("%.2f\n",addition);
}
}
return 0;
}
2012 素数判定
#include<bits/stdc++.h>
bool func(int n){
//判断是否是素数
int num = n*n+n+41;
for(int i=2;i<pow(num,0.5);i++)
if(num%i==0) return 0;
return 1;
}
int main(){
int x,y;
while(~scanf("%d %d",&x,&y)){
if(x==0 && y==0) break;
int time=0;
for(int i=x;i<=y;i++)
if(!func(i)){
time += 1;
printf("Sorry\n");
break;
}
if(time==0) printf("OK\n");
}
return 0;
}
2013 蟠桃记
#include<bits/stdc++.h>
int main(){
int n;
while(~scanf("%d",&n)){
int sum=1;
for(int i=1;i<n;i++){
sum =2*(sum+1);
}
printf("%d\n",sum);
}
return 0;
}
2014 青年歌手大奖赛_评委会打分
#include<bits/stdc++.h>
int main(){
int n;
while(~scanf("%d",&n)){
double mix=999999.0,max=0.0,score,exam[n];
int t1=0,t2=0;
for(int i=0;i<n;i++){
scanf("%lf",&score);
exam[i] = score;
mix = score<mix?score:mix;
max = score>max?score:max;
}
score = 0;
for(int i=0;i<n;i++){
if(exam[i]==mix && t1==0){
//考虑存在重复的最大或者最小数
t1 = 1;
continue;
}
if(exam[i]==max && t2==0){
t2 = 1;
continue;
}
score += exam[i];
}
printf("%.2f\n",score/(n-2));
}
return 0;
}
2015 偶数求和
#include<bits/stdc++.h>
int main(){
int n,m;
while(~scanf("%d %d",&n,&m)){
int time=n,sign=0;
for(int j=1;j<= (n%m==0?n/m:(n/m+1)) ;j++){
//结果序列中共有n/m或(n/m+1)个数
int sum=0;
for(int k=1;k<=m;k++){
//求m个数的和
if(time==0){
sign = 1; //表示最后不足m个,强制退出求和,计算结果是最后n%m个数的和
break;
}
sum += (j-1)*2*m+2*k;
time--;
}
if(j>=2) printf(" ");
printf("%d",sum/(sign==0?m:(n%m)));
if(j==(n%m==0?n/m:(n/m+1))) printf("\n");
}
}
return 0;
}
2016 数据的交换输出
#include<bits/stdc++.h>
int main(){
int n;
while(~scanf("%d",&n)){
if(n==0) break;
int min=999999,num[n],pos=0;
for(int i=0;i<n;i++){
scanf("%d",&num[i]);
if(min>num[i]){
min = num[i];
pos = i;
}
}
num[pos] = num[0];
num[0] = min;
for(int i=0;i<n;i++){
if(i>0) printf(" ");
printf("%d",num[i]);
if(i==(n-1)) printf("\n");
}
}
return 0;
}
2017 字符串统计
#include<bits/stdc++.h>
int main(){
int n;
scanf("%d",&n);
getchar();
for(int i=0;i<n;i++){
int amount = 0;
char ch;
while(1){
scanf("%c",&ch);
if(ch=='\n') break;
if(ch<58) amount ++;
}
printf("%d\n",amount);
}
return 0;
}
2018 母牛的故事
有意思
#include<bits/stdc++.h>
int main(){
int n;
while(~scanf("%d",&n)){
if(n==0) break;
int num[n+1];
num[1] = 1;
num[2] = 2;
num[3] = 3;
num[4] = 4;
for(int i=5;i<=n;i++){
num[i] = num[i-1]+num[i-3];
}
printf("%d\n",num[n]);
}
return 0;
}
2019 数列有序!
#include<bits/stdc++.h>
int main(){
int n,m;
while(~scanf("%d %d",&n,&m)){
if(n==0 && m==0) break;
int num[n+1],digit,sign=0;
for(int i=0;i<n;i++){
scanf("%d",&digit);
if(m<=digit && !sign){
num[i] = m;
num[i+1] = digit;
sign = 1;
}
num[i+sign] = digit;
}
for(int i=0;i<=n;i++){
if(i>0) printf(" ");
printf("%d",num[i]);
if(i==n) printf("\n");
}
}
return 0;
}
2020 绝对值排序
#include<bits/stdc++.h>
#define swap(a,b) {int temp=a;a=b;b=temp;}
int main(){
int n;
while(~scanf("%d",&n)){
if(n==0) break;
int num[n];
memset(num,0,sizeof(num));
for(int i=0;i<n;i++){
scanf("%d",&num[i]);
}
for(int i=0;i<n-1;i++){
//冒泡排序
for(int j=0;j<n-i-1;j++){
if(abs(num[j])<abs(num[j+1]))
swap(num[j],num[j+1]);
}
}
for(int i=0;i<n;i++){
if(i>0) printf(" ");
printf("%d",num[i]);
if(i==(n-1)) printf("\n");
}
}
return 0;
}