题目:
解法1:#includeusing namespace std; int main() { //3 4 -5 2 6 1 -2 0 int ji = 0, zhi = 0; cin >> ji >> zhi; bool flag = false; while (1) { // 只有指数不等于0 且基数不等于0才打印 且第一次时不打印空格 // if (zhi) { if (flag) cout << " "; cout << ji * zhi << " " << zhi - 1; } if (!flag && zhi == 0) { cout << "0 0"; break; } flag = true; char c; if ((c = getchar()) == 'n') break; cin >> ji >> zhi; } return 0; }
分析与反思:
1. 自己的思想有点局限于数组了 导致这个题没写出来
2. 这个题现在看来并不复杂 如果以两个整数两个整数的输入形式来说 :在不是零多项式的情况下: 指数不为0则输出 这里不用判断系数是不是0 按理说 系数是0 则肯定就不输出 但是题目说了:以指数递降方式输入多项式非零项系数和指数 也就是系数肯定不是0
3. 引入flag 用于判定这组整数是不是第一组整数 是 则不输出空格 不是则输出空格 且如果是零多项式 也需要flag辅助 因为只有第一次输入时是零多项式时 才会输出“0 0”
4. 零多项式的条件是 1. 这是第一组数据 2. 指数为0 并不要求系数也为0 也就是如果f(x)=4 这个也是零多项式 (错过)
解法2:#includeusing namespace std; int main() { int a, b, flag = 0; while (1) { cin >> a >> b; if (b) { if (flag) cout << ' '; else flag = 1; cout << a * b << ' ' << b - 1; } char c; if ((c = getchar()) == 'n') break; } if (!flag) cout << 0 << ' ' << 0; return 0; }
解法相差不多 自己看
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)