給定函式d(n)=n+n的各位之和,n為正整數,如d(78)=78+7+8=93。這樣這個函式可以看成乙個生成器,如93可以看成由78生成。
定義數a:數a找不到乙個數b可以由d(b)=a,即a不能由其他數生成。現在要寫程式,找出1至10000裡的所有符合數a定義的數。
先申請乙個長度為10000的bool陣列,每個元素代表對應的值是否可以有其它數生成。開始時將陣列中的值都初始化為false。由於大於10000的數的生成數必定大於10000,所以我們只需遍歷1到10000中的數,計算生成數,並將bool陣列中對應的值設定為true,表示這個數可以有其它數生成。最後bool陣列中值為false的位置對應的整數就是不能由其它數生成的。
// **
void find(int n)
}for(i = 0; i <= n; ++i)}}
cout << endl;
}int main()
滿足條件的數(快手)
輸入乙個一位陣列,找出這個陣列中,所有滿足以下條件的元素 1.這個數左邊的所有元素都小於他 2.這個數右邊的數都大於他。樣例 輸入 輸出 9 15,10 11,20 39 9,20,39 採用單調棧,入棧的條件 如果當前的棧頂元素,st.top a i 那麼當前棧頂元素肯定不滿足,所以需要一直pop...
從numpy陣列中取出滿足條件的元素示例
例如問題 從 arr 陣列中提取所有奇數元素。input arr np.array 0,1,2,3,4,5,6,7,8,9 output array 1,3,5,7,9 solution input arr np.array 0,1,2,3,4,5,6,7,8,9 程式設計客棧 solution a...
滿足條件的有序表生成
元素定義為整型,首先從鍵盤獲取元素分別儲存到a,b,c中,然後對a,b,c進行排序,排序可以選擇冒泡,選擇排序等等的排序演算法。排完序後,對於後面的操作就顯得很容易了。先從b與c中找出它們相同的元素,然後在a查詢是否存在.即從b和c的表頭元素先進行比較,如果b的比較小,則b移動到下乙個元素,繼續和c...