小A有一个神奇口袋,里面可以装各个平方数。口袋的负载量就是口袋里所有数字之和,当负载量超过L的时候不能再装平方数。现在给定n个数,从左往右筛选其中的平方数,并依次将平方数放入口袋,编成程序,输出口袋里能装下几个平方数。平方数就是一个整数乘以自己的结果(例如:1、4、9、16……)补全①、②和③处的代码?
例如:输入L为100,n为5,接下来的5个数分别是49、19、36、25、73,则口袋里只装了49和36两个平方数,所以输出2。
#include<iostream>
using namespace std;
int main() {
int L, n, cnt = 0, sum = 0;
cin >> L >> n;
for (int i = 1; i <= n; i++) {
int x;
cin >> x;
bool flag = false;
for (int j = 1; j * j <= x; j++) {
if (j * j == x) {
flag = true;
break;
}
}
if (flag) {
②
cnt++;
}
}
cout << cnt;
return 0;
}
sum += x; if (sum > L) break;
sum += x; if (sum == L) break;
sum -= x; if (sum < L) break;
sum += x; if (sum < L) break;