提交到OJ平台,显示答案错误,只有88分,是有哪个测试数据没有通过吗?
#include<iostream>
#include<math.h>
using namespace std;
int main() {
long long int num;
cin >> num;
int p = 1;//表示位数
int a[10];//存储每一位的数组
int j = 0;
long long int i;
long long NUM = 0;
for (i = 10; i < 1000000000; i = i * 10) {
if (num / i == 0) {
break;
}
else {
p++;
a[j] = (num / (i / 10)) % 10;
j++;
}
}
a[j] = (num / (i / 10)) % 10;
int np;//记录当前位数
long long int pnum;//记录前面的值ab
long long int nnum;//记录后面的值de
for (int j = 0; j < p; j++) {
np = j + 1;//当前位数
pnum = num / pow(10, np);
nnum = num % (long long int) (pow(10, np - 1));
if (a[j] == 0) {
NUM = NUM + pnum * pow(10, np - 1);
}
else if (a[j] == 1) {
NUM = NUM + pnum * pow(10, np - 1) + nnum + 1;
}
else if (a[j] > 1) {
NUM = NUM + (pnum + 1) * pow(10, np - 1);
}
}
cout << NUM<<endl;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: