2022.3.29百度实习机试c++研发编程题(第一题):
构建一种新的乘法表
在一般乘法表中,8*9=72(第8行第9列),那么第8行的所有前9项为:8,16,24,32,40,48,56,64,72,现在将这些项反转变为:8,61,42,23,4,84,65,46,27,则原来最大值72,现在最大值是84。
给出行数n和k,求第n行中,前k项反转后的乘法表最大值。
输入:
第一行输入n,k
n>=1,k<=1000
输出:
前k项反转后的乘法表最大值
示例:
9 8
81
方法一(暴力法):
#include<iostream>
using namespace std;
int main()
{
//输入n,k
int n, k;
cin >> n >> k;
int ans = 0;//储存结果
//遍历k列
for (int i = 0; i <= k; i++) {
//把每次求得的数反转,取最大值
int t = i * n;
int a = 0;
int b = 0;
while (t != 0)
{
a = t % 10;
t /= 10;
b = b * 10 + a;
}
ans = max(b, ans);
}
cout << ans << endl;
return 0;
}
有其他方法可在下面留言采纳
探讨了如何通过编程解决一个数学问题:给定行数n和k,求第n行中,前k项反转后的乘法表最大值。提供了一种简单的暴力解法,并邀请读者分享更高效的算法。

406

被折叠的 条评论
为什么被折叠?



