我想从我的代码中获取此输出:
0
10
110
1110
11110
111110
但我得到的是
0
10
109
1110
11109
到目前为止,这是我的代码:
void optimal(int arrsize) {
int j;
int code = 0;
cout << '0' << endl;
for (int i = 1; i < arrsize; i++) {
j = i;
while (j > 0) {
code += pow(10, j);
j--;
}
cout << code << endl;
code = 0;
}
}
答案 0 :(得分:4)
您的代码通过非常昂贵的pow()调用浪费资源。您可以通过以下方式以最佳方式获得相同的结果:
void optimal(int arrsize)
{
cout<<'0'<<endl;
for (int i = 1; i < arrsize ; i++)
{
for (int j = 1; j < i ; j++)
{
cout<<'1';
}
cout<<'0'<<endl;
}
}
答案 1 :(得分:2)
pow
是一个浮点函数,然后你有舍入错误......
你可以将你的功能重写为:
void optimal(int arrsize)
{
cout << '0' <<endl;
int code = 0;
for (int i = 0; i < arrsize ; i++)
{
++code;
code *= 10;
cout<< code << endl;
}
}