珠心算測驗 C / C++


 

 

代碼如下

 

#include<iostream>
using namespace std;
//注意數組長度
int number[10001]; // 定義輸入數組
int book[10001];  //定義標記數組(桶)
int num[10001];  // 定義判斷輸出數組
    
int main()
{
    int n;
    int maxn = -1;
    int ans = 0;
    
    cin >> n;
    for(int i = 1; i <= n; i++)
    {
        
        cin >> number[i];  //輸入
        
        maxn = max(maxn,number[i]);  //求出最大輸入數字,減少不必要的運行時間
        book[number[i]] = 1;      //標記,將輸入的數在桶中標記
    }
    
    for(int i = 1; i <= maxn; i++)
        for(int j = i+1; j <= maxn; j++)
        {
            int k = i + j;      // 兩者對應的下標和
            if(k <= 10000)      //注意長度
                if(book[k] == book[i] * book[j] && book[k] != 0)  // 判斷
                    num[k] = 1;      // 符合題目, 將數字在數組中賦值為 1 
        }    
        
        
    for(int i = 1; i <= maxn; i++)
        if(num[i] == 1)        // 找出數組中符合題意的數, 即數組中為 1 的數
            ans++;        // 求個數
        //    cout << i << " ";
        
            
    cout << ans << endl;    //輸出個數
    return 0;
 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM