C++实验01_语法基础

C++实验01_语法基础

实验01(01)满足不等式的最小n值

题目描述
输入一个实数m,计算并输出满足下列不等式的最小n值:
1+1/2+1/3+...+1/n>m 
输入描述
一个double型数 
输出描述
两个数:满足条件的最小的大于m之和,满足不等式的最小n值 
输入样例
2.56 
输出样例
sum=2.59286,n=7
#include<iostream>
using namespace std;


int main()
{
    double m, sum = 0;
    int n = 1;
    cin >> m;
    while (sum <= m)//while()里面作循环条件就行
    {
        sum = sum + 1.0 / n;
        n++;
    }
    cout << "sum=" << sum << "," << "n=" << n - 1 << endl;//注意这里需要n-1,因为是+1之后就输出n了,在这次是不符合的!
    return 0;
}

实验01(02)找出所有满足关系的四位整数

题目描述
找出所有满足关系 
           (AB+CD)(AB+CD)=ABCD 
的四位整数ABCD。
说明:即(两位数+两位数)的平方=ABCD 
输入描述
无 
输出描述
满足条件的四位数 
输入样例
无 
输出样例
2025
3025
#include <iostream>
using namespace std;
int main()
{
    int i, A, B, C, D, S;
    for (i = 1000; i <= 9999; i++) //四位数是1000到9999
    {
        A = i / 1000 % 10; //分别取各位
        B = i / 100 % 10;
        C = i / 10 % 10;
        D = i % 10;
        if (C > 0) //这里C做了十位是首位,所以一定要大于0
        {
            S = (A * 10 + B + C * 10 + D) * (A * 10 + B + C * 10 + D);
            if (S == i)
                cout << i << endl;
        }
    }
    return 0;
}

实验01(03)去掉最大与最小值后的10个整数之和

题目描述
输入12个正整数,在去掉一个最小值和一个最大值后,求剩余10个正整数之和。 
输入描述
12个整数 
输出描述
去掉最大与最小值后的10个整数之和 
输入样例
98 45 234 1 5 7 98 6 45 90 4 56 
输出样例
sum=454
#include <iostream>
using namespace std;

int main()
{

	int max, min, sum = 0;
	int a[12];
	for (int i = 0; i < 12; i++)
	{
		cin >> a[i];
		sum = sum+a[i];
		if (i == 0)
		{
			max = a[i];
			min = a[i];//第一个值默认作为最大最小值的初始值
		}
		else
		{
			if (max < a[i])
				max = a[i];
			if (min > a[i])
				min = a[i];
		}
	}
	sum = sum - min - max;
	cout << "sum=" << sum << endl;
	return 0;

}

实验01(04)数字三角形

题目描述
输入一个整数n(1<n<10),在屏幕上显示数字三角形。例如,n=5,显示:
       1
      121
     12321
    1234321
   123454321 
输入描述
一个整数n 
输出描述
显示数字三角形 
输入样例
5 
输出样例
n=5
    1
   121
  12321
 1234321
123454321
#include <iostream>
using namespace std;
int main()
{
    int n, i, j;
    cin >> n;
    cout << "n=" << n << endl;
    for (i = 1; i <= n; i++)
    {
        for (j = 0; j < n - i; j++) //控制输入空格
            cout << " ";

        for (j = 1; j <= i; j++) //控制输出1到i
            cout << j;
        for (j = i - 1; j >= 1; j--) //控制输出i-1到1
            cout << j;
        for (j = 0; j < n - i; j++) //控制输出空格
            cout << " ";
        cout << "\n";
    }
    return 0;
}

实验01(05)Fibonacci数列

题目描述
编写一个C++风格的程序,用动态分配空间的方法计算Fibonacci数列的前20项并存储到动态分配的空间中。
说明:在C++中可以使用I/O流类库操纵符控制输出格式,在这里使用setw(int)控制整数的域宽,即输出整数所占的宽度。注意包含头文件iomanip。
本题采用的域宽为setw(5) 
输入描述
无 
输出描述
Fibonacci数列的前20项值 
输入样例
无 
输出样例
//本行是为控制杭电中题目格式而设,输出时不要空行
    1     1     2     3     5
    8    13    21    34    55
   89   144   233   377   610
  987  1597  2584  4181  6765
#include<iostream>
#include<iomanip>
using namespace std;

int fuion(int n)//使用迭代
{
	if (n == 1 || n == 2)
		return 1;
	else
		return fuion(n - 1) + fuion(n - 2);
}

int main()
{
	int *pi = new int[20];
	int i;
	for (i = 1; i <= 20; i++)
	{
		*pi = fuion(i);
		cout << setw(5) << *pi;
		if (i % 5 == 0)
			cout << endl;
	}

	delete[]pi;
	return 0;
}

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bmNkotc2AECynaY6

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值