逆序对个数c语言暴力求解
时间: 2023-11-24 18:59:12 浏览: 75
以下是一个暴力求解逆序对个数的C语言代码:
```c
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int a[n];
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
int count = 0;
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (a[i] > a[j]) {
count++;
}
}
}
printf("%d\n", count);
return 0;
}
```
该代码首先读入数组大小和数组元素,然后使用两个嵌套循环遍历所有元素对,如果左边的元素大于右边的元素,则逆序对个数加1。最后输出逆序对个数即可。该代码的时间复杂度为O(n^2),对于较大的数据可能会超时。
相关问题
三位数的逆序数C语言
三位数的逆序数是指将一个三位数的数字顺序颠倒后得到的新数字。在C语言中,可以通过取余和整除运算来实现三位数的逆序数的计算。具体实现方法可以参考以下代码:
```
#include <stdio.h>
int main() {
int num;
printf("请输入一个三位数:\n");
scanf("%d", &num);
int a = num % 10; // 取个位数
int b = num / 10 % 10; // 取十位数
int c = num / 100; // 取百位数
int sum = a * 100 + b * 10 + c; // 计算逆序数
printf("该三位数的逆序数是:%d\n", sum);
return 0;
}
```
以上代码可以实现输入一个三位数,输出其逆序数的功能。如果输入的数是700这种情况,也可以正确输出其逆序数7。
三位数输出逆序数C语言代码
在C语言中,如果你想要输入一个三位数并将其逆序输出,你可以通过接收用户输入,然后分别存储百位、十位和个位数字,最后再将它们按顺序输出。以下是一个简单的示例代码:
```c
#include <stdio.h>
int main() {
int num, reversedNum = 0;
// 接收用户输入的三位数
printf("请输入一个三位数:");
scanf("%d", &num);
// 检查输入是否为三位数
if (num >= 100 && num <= 999) {
// 取出每位数字并将它们相加,注意进位
while(num != 0) {
reversedNum = reversedNum * 10 + num % 10; // 取个位
num /= 10; // 移除个位
}
// 输出逆序后的数
printf("逆序后的数是:%d\n", reversedNum);
} else {
printf("输入的不是三位数,请重新输入。\n");
}
return 0;
}
```
阅读全文