题目
4-1 电子汪 (5分)
#include<bits/stdc++.h>
int main()
{
int a, b;
int n;
scanf("%d %d",&a,&b);
n = a + b;
while(n>0)
{
printf("Wang!");
n--;
}
return 0;
}
4-2 韩信点兵 (5分)
#include<stdio.h>
int main()
{
int count, i = 1;
for(i = 1;; i++)
{
if(i % 5 == 1 && i % 6 == 5 && i % 7 == 4 && i % 11 == 10)
{
break;
}
}
printf("%d",i);
return 0;
}
4-3 到底是不是太胖了 (10分)
#include<bits/stdc++.h>
using namespace std;
int n, h, w;
double b;
int main()
{
cin >> n;
for(int i = 0; i < n; i++)
{
cin >> h >> w;
b = (h - 100) * 0.9;
if(fabs(w - b * 2) < b * 2 * 0.1)
{
cout << "You are wan mei!" << endl;
}
else if(w >= b * 2 * 1.05)
{
cout << "You are tai pang le!" << endl;
}
else
{
cout << "You are tai shou le!" << endl;
}
}
return 0;
}
解析见太胖了
4-4 输出闰年 (10分)
#include<stdio.h>
int main()
{
int year;
int i = 2001;
scanf("%d",&year);
if(year>2100||year<2001)printf("Invalid year!");
else
{
if(year<2004)printf("None");
for(;i<=year;i++)
{
if(i%4==0 && i%100!=0 || i%400==0)printf("%d\n",i);
}
}
return 0;
}
4-5 求阶乘序列前N项和 (10分)
#include <stdio.h>
int main()
{
int n;
int sum = 0;
scanf("%d",&n);
for(int x=1;x<=n;x++)
{
int sum1 = 1;
for(int i=1;i<=x;i++)
{
sum1 = sum1 * i;
}
sum =sum + sum1;
}
printf("%d\n",sum);
return 0;
}
4-6 求平方与倒数序列的部分和 (10分)
// 两个序列求和
#include<stdio.h>
int main()
{
double sum = 0;
int m, n;
scanf("%d%d",&m,&n);
for(m; m <= n; m++)
{
sum += m * m + 1.0 / m;
}
printf("sum = %.6lf",sum);
return 0;
}
4-7 特殊a串数列求和 (15分)
#include <stdio.h>
int main()
{
int a,n;
double item=0;
double sum=0;
scanf("%d %d",&a,&n);
for(int i=1;i<=n;i++){
item=item*10+a;//第i项
sum+=item;
}
printf("s = %.lf\n",sum);
return 0;
}
4-8 换硬币 (15分)
#include<stdio.h>
int main()
{
int coin1,coin2,coin5,count=0,x;
scanf("%d",&x);
/*从coin5,coin2,coin1依次设置for循环
是根据题目要求按5分、2分和1分硬币的数量依次从大到小的顺序*/
for(coin5=x/5;coin5>0;coin5--){
for(coin2=x/2;coin2>0;coin2--){
for(coin1=x;coin1>0;coin1--){
if(coin1+coin2*2+coin5*5==x){
printf("fen5:%d, fen2:%d, fen1:%d,total:%d\n",coin5,coin2,coin1,coin1+coin2+coin5);
count++;
break;
}
}
}
}printf("count = %d",count);
return 0;
}
4-9 求n以内最大的k个素数以及它们的和 (20分)
#include <stdio.h>
// 判断素数
int prime(int num)
{
int flag=1;
for(int i=2;i<(num-1);i++)
{
if(num%i==0)
{
flag=0;
break;
}
}
return flag;
}
int main()
{
int num,n,sum=0,k=0;
scanf("%d %d",&num,&n);
for(int i=num;i>1;i--)
{
if(prime(i))
{
k++;
sum+=i;
printf("%d",i);
if(k==n||i==2)
{
printf("=%d",sum);
break;
}
else
{
printf("+");
}
}
}
return 0;
}