2.1 枚举
例题2.1
#include <cstdio>
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
for (int a = 0; a <= 9; ++a)
{
for (int b = 0; b <= 9; ++b)
{
for (int c = 0; c <= 9; ++c)
{
if (a * 100 + b * 110 + c * 12 == 532)
{
printf("%d %d %d\n", a, b, c);
}
}
}
}
system("pause");
return 0;
}
例题2.2
#include <cstdio>
#include <iostream>
#include <stdlib.h>
using namespace std;
int Reverse(int x)
{
int revx = 0;
while (x != 0)
{
revx *= 10;
revx += x % 10;
x /= 10;
}
return revx;
}
int main()
{
for (int i = 1000; i <= 9999; ++i)
{
if (i * 9 == Reverse(i))
{
printf("%d\n", i);
}
}
system("pause");
return 0;
}
例题2.3
#include <cstdio>
#include <iostream>
#include <stdlib.h>
using namespace std;
int Reverse(int x)
{
int revx = 0;
while (x != 0)
{
revx *= 10;
revx += x % 10;
x /= 10;
}
return revx;
}
int main()
{
for (int i = 0; i <= 256; ++i)
{
if (i * i == Reverse(i * i))
{
printf("%d\n", i);
}
}
system("pause");
return 0;
}
习题2.1
#include <cstdio>
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
int s = 0;
int x;
int y;
int z;
for (int i; i < 100; i++)
{
x = i % 7;
y = i / 10;
z = i % 10;
if (x != 0 && y != 7 && z != 7)
s += i * i;
}
printf("%d\n", s);
system("pause");
return 0;
}
习题2.2
#include <cstdio>
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
int n;
printf("请输入持有金额:");
scanf("%d", &n);
int cock, hen, chicken;
for (cock = 0; cock <= n / 5; cock++)
{
for (hen = 0; hen <= n / 3; hen++)
{
for (chicken = 0; chicken <= 3 * n; chicken++)
{
if (cock * 5 + hen * 3 + chicken / 3 == n && cock + hen + chicken == n)
{
printf("买大鸡%d只,买小鸡%d只,买小小鸡%d只\n", cock, hen, chicken);
}
}
}
}
system("pause");
return 0;
}
习题2.3
#include <cstdio>
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
int n, x, y, z, i, j;
bool flag;
while (cin >> n)
{
cin >> x >> y >> z;
int p = x * 1000 + y * 100 + z * 10; //part of number
flag = true;
for (i = 9; i >= 1; --i)
{
for (j = 9; j >= 0; --j)
{
int num = i * 10000 + p + j;
if (num % n == 0)
{
printf("%d %d %d\n", i, j, num / n);
flag = false;
break;
}
}
if (!flag)
break;
}
if (flag)
{
printf("0\n");
}
}
return 0;
}