实验3 循环

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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值