每日编程一小时(第12天)

发布时间 2023-04-21 17:14:35作者: 伐木工熊大

一.问题描述

求一个数高次方的尾数

二.设计思路

1.输入两个数a,n

2.设置尾数last=1

3.设计一个循环循环中执行last=last*a%1000,循环执行n次

4.所得的last

三.流程图

 

 

四.代码实现

#include<iostream>
using namespace std;
int main()
{
    int a, n,last=1;
    cin >> a >> n;
    for (int i = 0; i < n; i++)
    {
        last = (last*a)%1000;
    }
    cout << a <<"" <<n <<"次方的三位尾数为" << last;
}

 

一.问题描述

有理数加法,按分数形式输入数据,结果为分数按分数形式输出,整数按整数形式输出

二.设计思路

1.输入数据,用cin.ignore吸收/

2.定义一个变量使其等于两分母之积,再定义一变量,使其等于通分后的分子之和

3.利用辗转相除法找出两个变量最大的公倍数并约去

4.判断分母是否为1,根据其判断是以分数形式输出还是整数形式输出

三.流程图

 

四.代码实现

#include<iostream>
using namespace std;
int f(int a, int b)
{
    int c;
    if (a < b)
    {
        c = a;
        a = b;
        b = c;
    }
    c = a % b;
    while (c != 0)
    {
        a = b;
        b = c;
        c = a % b;
    }
    return b;
}
int main()
{
    int a, b, c, d, e, s, g;
    cout << "请以a/b的形式输入两个分数" << endl;
    cin >> a ;
    cin.ignore();
    cin >> b >> c;
    cin.ignore();
    cin >> d;
    if (b != 0 && d != 0)
    {
        e = a * d + c * b;
        s = b * d;
        g = f(e, s);
        e = e / g;
        s = s / g;
        if (s == 1)
            cout << "计算结果为" << e;
        else
            cout <<"计算结果为"<< e << "/" << s;
    }
    else
        cout << "错误数据" << endl;
    return 0;

}