一.问题描述
求一个数高次方的尾数
二.设计思路
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; }