【題目描述】輸入兩個正整數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;
}
代碼如上,雖然這樣也可以運行得到結果,但是循環過大,時間複雜度比較高。
如果您有更好的建議,歡迎留言!