求书写格式简化

P1008 [NOIP1998 普及组] 三连击

你可以用数组存位数,然后写个返回bool的检查函数。
by Loner_Knowledge @ 2017-12-17 22:49:00


@[沙与沫](/space/show?uid=77421) 自己都感觉没说明白,重新说一遍。 可以用数组存位数,然后用循环判断用没有相同的数字。 我的方法是定义一个Check函数返回一个bool值,用来检测在第n位数之前有没有与第n位数相同的数字,如果有则返回0。 然后用循环调用Check(2)一直到Check(9)即可。
by Loner_Knowledge @ 2017-12-18 10:44:29


0. 楼主真心有毅力
by autoint @ 2017-12-18 13:18:15


明白了 谢谢你
by 沙与沫 @ 2017-12-21 19:57:43


```cpp #include<iostream> using namespace std; int main() { int x2,x3,tmp,mod,out; for (int x = 1; x <= 3; x++) { for (int y = 1; y <= 9; y++) { if (y == x ) continue; for (int z = 1; z <= 9; z++) { if (z==y) continue; if (z == x) continue; int sum[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; sum[x] = 0; sum[y] = 0; sum[z] = 0; x2 = (x * 100 + y * 10 + z) * 2; out = 1; mod = x2; while (mod && out) { tmp = mod % 10; if (sum[tmp] == 0) out = 0; else { mod = mod / 10; sum[tmp] = 0; } } if (!out) continue;; x3 = (x * 100 + y * 10 + z) * 3; mod = x3; while (mod && out) { tmp = mod % 10; if (sum[tmp] == 0) out = 0; else { mod = mod / 10; sum[tmp] = 0; } } if (out) cout << x * 100 + y * 10 + z << " " << x2 <<" "<< x3 << endl; } } } //system("pause"); return 0; } ```
by 网上虫子 @ 2018-01-02 21:59:15


|