一道編程題

【題目描述】輸入兩個正整數n和k(0<k<n-1),存在兩個數x和y都不大於n,且x除以y的餘數不小於k;請問(x,y)有幾種可能的情況。

【輸入】5  2

【輸出】7

【說明】當輸入n=5,k=2時,(x,y)有以下7種組合滿足條件組合情況:(2,5)(2,4)(2,3)(3,5)(3,4)(4,5)(5,3)

#include<stdio.h>
#include<malloc.h>
int main(){
    int n,k,x,y;
    int sum = 0;
    scanf("%d%d",&n,&k);
    for(int i = 1;i <= n;i++){
        x=i;
        for(int j = k + 1;j <= n;j++){//除數小於等於k時,不滿足條件
            y = j;
            if(x%y>=k)sum++;
        }
    }
    printf("%d",sum);
    return 0;
}

代碼如上,雖然這樣也可以運行得到結果,但是循環過大,時間複雜度比較高。

如果您有更好的建議,歡迎留言!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章