输入正整数n,求出逆序数,并将所有逆序数对分别输出。C语言

如题所述

第1个回答  2013-04-07
#include <stdio.h>

#define NUM 20

void main()
{
long n;
int data[NUM]={0},len=0;
scanf("%d",&n);
do
{
data[len++] = n%10;
n/=10;
}while(n!=0);

for(n=0;n<len;n++)
{
printf("%d",data[n]);
}
}本回答被提问者和网友采纳
第2个回答  2013-04-07
#include<stdio.h>
main()
{
int a,b,c;
int s(int ss);
printf("请输入一个正整数:");
scanf("%d",&a);
s(a);

}

int s(int ss)
{
int i,a,b,c;
while(ss!=0)
{
a=ss%10;
printf("%d ",a);
ss=ss/10;
}
}

函数的,简单
第3个回答  2023-03-08
以下是求解正整数n的逆序数以及输出所有逆序数对的C语言程序:

```c
#include <stdio.h>

int main()
{
int n, digit, count = 0;
scanf("%d", &n);

for (int i = 1; i <= n; i++) {
int m = i;
while (m > 0) {
digit = m % 10;
if (digit != 0 && i % digit == 0) {
printf("(%d, %d)\n", i, digit);
count++;
}
m /= 10;
}
}

printf("Total number of inverse pairs: %d\n", count);
return 0;
}
```

首先输入正整数n,然后使用两个嵌套的for循环遍历1到n之间的所有数字。在内层循环中,我们提取每个数字的各个位上的数字,并检查该数字是否为零以及它是否是原数字i的因子。如果符合条件,我们就输出逆序数对(i, digit),并将计数器count加一。

最后,我们输出所有逆序数对的数量。
第4个回答  2013-04-07
题目意思模糊,如入的正整数n,求这个正整数的逆序数?如65535输出53556吗?后面的逆序数对 什么意思?追问

可以输出(6,5)(6,3)(5,3)