能用第一种就用第一种,不能用就用第二种,就A了这一道,各位大佬都AC了几道呢,瑟瑟发抖 #include<iostream> using namespace std; int main() { int n; cin >> n; int s=1,m=1,cnt=0; while (s<n) { if (2 * s == n || (2 * s < n &&n% s == 0)) { m = s; s = 2 * s; } else { s += m; } ++cnt; } cout << cn...