本文介绍了一个乘以2的数字给出了它的排列,我的代码没有给出任何这样的排列。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
#include<stdio.h>
#include<math.h>
int numdig(int x)
{
int i=0;
for(i=0;i<100;i++)
{
x=x/10;
if(x==0)
break;
}
return (i+1);
}
void sort(int a[],int n)
{
int i=0,j,temp;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
int numcheck(int x)
{ int count=0;
int i=0,j,y;
int a[50],b[50];
for(i=0;i<50;i++)
{
a[i]=x%10;
x=x/10;
if(x==0) break;
}
j=i; y=2*x;
for(i=0;i<50;i++)
{
b[i]=y%10;
y=y/10;
}
sort(a,j+1);sort(b,j+1);
for(i=0;i<j;i++)
{
if(a[i]==b[i]) count++;
}
if(count==j+1) return 1;
else return 0;
}
int main()
{
long long int a,b,i; int t,k;
printf("enter the number of cases\n");
scanf("%d",&t);
for(k=0;k<t;k++)
{
printf("enter the number which are upper bound and lower bound\n");
scanf("%d",&a);
scanf("%d",&b);
for(i=a;i<b;i++)
{
if(numdig(i)!=numdig(2i))
break;
else if (numcheck(i)==1)
printf("this is one of the required number : %d",i);
else continue;
}
}
return 0;
}
推荐答案
found 125874 (251748)
作为第一个这样的数字。
as first of such numbers.
#include<stdio.h>
void sort(int a[],int n)
{
int i, j, temp;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if ( a[i] > a[j] )
{
temp = a[i];
a[i] = a[j];
a[j]=temp;
}
}
}
}
int make_array(int x, int a[], int size)
{
int i;
for (i = 0; i < size; ++i)
{
a[i] = x % 10;
x /= 10;
if ( x == 0 ) break;
}
return (i +1);
}
int numcheck(int x)
{
int i;
int sa, sa2;
int a[50], a2[50];
sa = make_array( x, a, 50);
sa2 = make_array( x * 2, a2, 50);
if ( sa != sa2) return 0;
sort( a, sa);
sort( a2, sa);
for(i=0; i<sa; i++)
{
if ( a[i] != a2[i] ) break;
}
if (i != sa) return 0;
return 1;
}
int main()
{
int a,b,i; int t,k;
printf("enter the number of cases\n");
scanf("%d",&t);
for(k=0;k<t;k++)
{
printf("enter the number which are upper bound and lower bound\n");
scanf("%d",&a);
scanf("%d",&b);
for(i=a;i<b;i++)
{
if ( numcheck( i ) == 1) printf("found %d (%d) \n", i, 2*i);
}
}
return 0;
}
这篇关于一个乘以2的数字给出了它的排列,我的代码没有给出任何这样的排列。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!