第一题:除法
#include <cstdio>
#include <iostream>
using namespace std;
void dd(int n)
{
for (int i = 98765 / 79; i <= 98765 / 2; i++)//i是被除数
{
int y[12] = { 0 };
if (i < 10000)
{
y[0] = 1;
}
int k = i;//对当前数进行分解
int p;
bool isok = true;
do {
int temp = k % 10;
if (y[temp] == 1)
{
isok = false; break;
}
else {
y[temp] = 1;
}
k /= 10;
} while (k);
if (isok == false)
{
continue;
}
else
{
p = n * i;
int pp = p;
do {
int temp = pp % 10;
if (1 == y[temp]) {
isok = false; break;
}
else {
y[temp] = 1;
}
pp /= 10;
} while (pp);
}
if (isok)
{
if (i < 10000)
{
printf("%d/0%d=%d\n", p, i, n);
}
else {
printf("%d/%d=%d\n",p, i, n);
}
}
}
}
int main()
{
int n;
cin >> n;
//scanf_s("%d", &n);
dd(n);
return 0;
}
第二题:最大乘积
int main() {
int n;
cin >> n;
int aa[20]; int i;
for (i = 0; i < n; i++)
{
cin >> aa[i];
}
long long max = aa[0] * aa[1];
for (int begin = 0; begin <=i- 1; begin++)
{
for (int end = begin + 1; end <=i; end++)
{
long long p = 1;
for (int j = begin; j <end; j++)
{
p *= aa[j];
}
if (p > max)
{
max = p;
}
}
}
if (max < 0)
{
cout << "0" << endl;
}
else {
cout << max << endl;
}
return 0;
}
第三题:分数拆分
int main()
{
int k;
cin >> k;
int ans = 0;
int y, x;
for (y = k + 1; y <= 2 * k; y++)
{
x = k*y / (y - k);
if (k * y %(y - k)==0)//保证是个整数
{
++ans;
cout<<ans<<endl;
printf("1/%d=1/%d+1/%d\n", k, x, y);
}
}
return 0;
}
原文:https://www.cnblogs.com/lwyy1223-/p/13558546.html