C語言程式中列印和小於等於k的三元組
給定一個包含一組元素的陣列,任務是找出恰好包含三個元素且和不大於k的集合。
輸入 - arr[]= {1,2,3,8,5,4}
輸出 - 集合 → {1, 2, 3} {1, 2, 5} {1, 2, 4} {1, 3, 5} {1, 3, 4} {1, 5, 4} {2, 3, 5} {2, 3, 4}
首先,根據陣列的大小計算陣列的大小,其中i的for迴圈迭代到size-2,j的for迴圈迭代到size-1,k的for迴圈迭代到size。
演算法
START Step 1 -> declare int variable sum to k (e.g. 10), i, j, k Step 2 -> declare and initialise size with array size using sizeof(arr)/sizeof(arr[0]) Step 3 -> Loop For i to 0 and i<size-2 and i++ Loop For j to i+1 and j<size-1 and j++ Loop For k to j+1 and k<size and k++ IF arr[i]+ arr[j] + arr[k] <= sum Print arr[i] and arr[j] and arr[k] End IF End Loop for End Loop For Step 4 -> End Loop For STOP
示例
#include <stdio.h>
int main(int argc, char const *argv[]) {
int arr[] = {1, 2, 3, 8, 5, 4};
int sum = 10;
int i, j, k;
int size = sizeof(arr)/sizeof(arr[0]);
for (i = 0; i < size-2; i++) {
for (j = i+1; j < size-1; j++) {
for (k = j+1; k < size; k++) {
if( arr[i]+ arr[j] + arr[k] <= sum )
printf( "{%d, %d, %d}
",arr[i], arr[j], arr[k] );
}
}
}
return 0;
}輸出
如果執行上述程式,它將生成以下輸出。
{1, 2, 3}
{1, 2, 5}
{1, 2, 4}
{1, 3, 5}
{1, 3, 4}
{1, 5, 4}
{2, 3, 5}
{2, 3, 4}
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP