2011-Problem Description
多项式的描述如下:
1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ...
现在请你求出该多项式的前n项的和。
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int m,n;
double sum;
cin>>m;
while(m--){
int res=1;
sum=1;
cin>>n;
for(double i=2;i<=n;i++){
res = res*(-1);
sum += (1/i)*res;
}
printf("%.2lf\n",sum);
}
return 0;
}
2012-Problem Description
对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数。
#include <iostream>
using namespace std;
int main()
{ int m,n,sum;
while((cin>>m>>n)&&(m||n))
{ int flag=1;
for(int i=m;i<=n;i++)
{ sum=i*i+i+41;
for(int j=2;j*j<=sum;j++)
{ if(sum%j==0)
{ flag=0;
break;
}
}
}
if (flag) cout<<"OK"<<endl;
else cout<<"Sorry"<<endl;
}
return 0;
}
2013-Problem Description
喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题!
什么问题?他研究的问题是蟠桃一共有多少个!
不过,到最后,他还是没能解决这个难题,呵呵^-^
当时的情况是这样的:
第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int n,num;
while(~scanf("%d",&n)){
num=1;
for(int i=2;i<=n;i++){
num = (num+1)*2;
}
cout<<num<<endl;
}
return 0;
}
2014-Problem Description
青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int n;
float t,a[100];
while(~scanf("%d",&n)){
for(int i=0;i<n;i++){
scanf("%f",&a[i]);
}
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if(a[i]>a[j]){
t=a[i],a[i]=a[j],a[j]=t;
}
}
}
t=0;
for(int i=1;i<n-1;i++){
t += a[i];
}
t = t/(n-2);
printf("%.2f\n",t);
}
return 0;
}
2015-Problem Description
有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int n,m;
while(cin>>n>>m){
int sum=0,j=0;
for(int i=1;i<=n;i++){
++j;
sum += i*2;
if(i==n){
cout<<sum/j<<endl;
}else if(i%m==0){
cout<<sum/j<<" ";
j=0;
sum=0;
}
}
}
return 0;
}
2015-Problem Description
输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int n,m;
while(cin>>n>>m){
int sum=0,j=0;
for(int i=1;i<=n;i++){
++j;
sum += i*2;
if(i==n){
cout<<sum/j<<endl;
}else if(i%m==0){
cout<<sum/j<<" ";
j=0;
sum=0;
}
}
}
return 0;
}
2016-Problem Description
输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。
#include<iostream>
using namespace std;
int main()
{
int n;
while(cin>>n&&n)
{
int m[100];
int min=0;
for(int i=0;i<n;i++)
{
cin>>m[i];
if(m[min]>m[i])
min=i;
}
int temp;
temp=m[min];
m[min]=m[0];
m[0]=temp;
for(int i=0;i<n-1;i++)
cout<<m[i]<<" ";
cout<<m[n-1]<<endl;
}
}
2017-Problem Description
对于给定的一个字符串,统计其中数字字符出现的次数。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<string>
using namespace std;
int main(){
int n;
cin >> n;
int i,j;
char a[100000];
for(i = 0; i < n ; i++){
scanf("%s",a);
int count = 0;//总数在这里定义,要不然会多次计数
for(j = 0;a[j] != '\0'; j++){
if(a[j] >= 48 && a[j] <= 57)
count++;
}
cout << count << endl;
}
return 0;
}
2018-Problem Description
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
#include<iostream>
#include<cstdio>
using namespace std;
int a[101];
int main(){
int n;
a[1]=1;
a[2]=2;
a[3]=3;
a[4]=4;
while((~scanf("%d",&n) && n)){
if(n<=4) cout<<n<<endl;
else{
for(int i=5;i<=n;i++){
a[i] = a[i-1] + a[i-3];
}
cout<<a[n]<<endl;
}
}
return 0;
}
2019-Problem Description
有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。
#include<iostream>
using namespace std;
int main(){
int n,m;
while(cin>>n>>m){
if(m==0 && n==0) return 0;
int a[100];
for(int i=0;i<n;i++){
cin>>a[i];
}
a[n] = m;
for(int i=n;i>=0;i--){
if(a[i]<a[i-1]) {
a[i] ^= a[i-1];
a[i-1] ^= a[i];
a[i] ^= a[i-1];
}else{
break;
}
}
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
cout<<a[n]<<endl;
}
return 0;
}
2020-Problem Description
输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main(){
int n;
while(cin>>n && n){
int a[100];
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
for(int j=0;j<n-i-1;j++){
if(abs(a[j]) < abs(a[j+1])){
a[j] ^= a[j+1];
a[j+1] ^= a[j];
a[j] ^= a[j+1];
}
}
}
for(int i=0;i<n-1;i++){
cout<<a[i]<<" ";
}
cout<<a[n-1]<<endl;
}
return 0;
}