pta 1010 搞不懂为啥过不了 望各位帮忙解答
很多例子都试过了 和答案的一样
谢谢啦
#include <stdio.h>
struct X {
int a, b;
}x[1000];
int main() {
int a, b, cnt = 0;
while(scanf("%d%d", &a, &b) == 2) {
x[cnt].a = a, x[cnt].b = b;
cnt ++;
}
if(x[0].a == 0 || x[0].b == 0)
printf("%d %d",0,0);
else
printf("%d %d",x[0].a * x[0].b, x[0].b - 1);
for(int i = 1;i < cnt;i ++){
if(x[i].a == 0 || x[i].b == 0)
continue;
else
printf(" %d %d",x[i].a * x[i].b, x[i].b - 1);
}
return 0;
}
[参考:https://blog.csdn.net/nyquist_mikkan/article/details/114364003]
审题
以指数递降方式输入多项式非零项系数和指数,也就是说越靠前的指数越低,如果是零多项式,那么第一组参数就能知道是了;
输入用例是两个数绑定在一起的,可以使用结构体来接收
零多项式输出0 0,但正常多项式里常数项的导数不输出。
代码
#include <iostream>
#include <vector>
using namespace std;
typedef struct{
int a;
int n;
}param;
vector<param*> params;
void logic();
int main(){
int input_a;
int input_n;
while(cin.peek() != '\n'){
cin >> input_a >> input_n;
//每次都要重新申请内存,不然存进去的内容都一样
param* input_param = new param;
input_param->a = input_a;
input_param->n = input_n;
params.push_back(input_param);
}
logic();
//零多项式要单独作为条件
if(params[0]->a == 0){
cout << 0 << " " << 0;
return 0;
}
bool first = true;
for(param* single : params){
//常数项的导数不输出
if(single->a != 0){
if(first){
first = false;
cout << single->a << " " << single->n;
}else{
cout << " " << single->a << " " << single->n;
}
}
}
return 0;
}
void logic(){
for(param* single : params){
single->a *= single->n;
single->n -= 1;
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话: