|
发表于 2023-12-7 15:04:34
|
显示全部楼层
当然可以!以下是使用C语言编写的示例代码:
- #include <stdio.h>
- int isCriticalNumber(int n, int record[], int size) {
- while (n != 1) {
- for (int i = 0; i < size; i++) {
- if (n == record[i]) {
- return 0;
- }
- }
- record[size++] = n;
- if (n % 2 == 0) {
- n /= 2;
- } else {
- n = 3 * n + 1;
- }
- }
- return 1;
- }
- int main() {
- int K;
- printf("请输入待验证数字的个数:");
- scanf("%d", &K);
-
- int numbers[K];
- printf("请输入%d个数字:\n", K);
- for (int i = 0; i < K; i++) {
- scanf("%d", &numbers[i]);
- }
-
- int record[K];
- int size = 0;
- int criticalNumbers[K];
- int criticalSize = 0;
-
- for (int i = 0; i < K; i++) {
- if (isCriticalNumber(numbers[i], record, size)) {
- criticalNumbers[criticalSize++] = numbers[i];
- }
- }
-
- // 对关键数字进行从大到小的排序(这里使用冒泡排序)
- for (int i = 0; i < criticalSize - 1; i++) {
- for (int j = 0; j < criticalSize - i - 1; j++) {
- if (criticalNumbers[j] < criticalNumbers[j+1]) {
- int temp = criticalNumbers[j];
- criticalNumbers[j] = criticalNumbers[j+1];
- criticalNumbers[j+1] = temp;
- }
- }
- }
-
- printf("关键数字为:\n");
- for (int i = 0; i < criticalSize; i++) {
- printf("%d\n", criticalNumbers[i]);
- }
-
- return 0;
- }
复制代码
希望这个C语言的代码能够解决你的问题!如果还有其他问题,请随时提问。
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。 |
|