1. 写一函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间有一个空格。
如输入1990,应输出“1 9 9 0”。
2. 将1,2,3,4,5,6,7,8,9共9个数分成三组,组成3个三位数,且使这3个三位数构成1:2:3的比例,
如输入1990,应输出“1 9 9 0”。
2. 将1,2,3,4,5,6,7,8,9共9个数分成三组,组成3个三位数,且使这3个三位数构成1:2:3的比例,
例如:3个三位数192,384,576满足以上条件.192:384:576=1:2:3。试求出所有满足条件的3个三位数。
#include <stdio.h>
#include <stdlib.h>
#define SELECT 0
#if SELECT//题目一
int main(void)
{
int n,t=1000;
printf("请输入4位数字:\n");
scanf("%d",&n);
do
{
printf("%d ",n/t);
n=n%t;
t=t/10;
}while(t!=0);
return 0;
}
#else//题目二
int judge(int n)
{
int n2=2*n,n3=3*n;
int i,j;
int * p = (int*)malloc(sizeof(int)*9);
writeToArray(n,p);
writeToArray(n2,p+3);
writeToArray(n3,p+6);
for(i = 0; i < 9; i++)
{
if(p[i] == '0')
return 0;
}
for(i = 0; i < 8; i++)
for(j = i+1; j < 9; j++)
{
if(p[i] == p[j])
return 0;
}
return 1;
}
void writeToArray(int n,int *p)
{
int i=0;
while(n)
{
*(p+i)=n%10;
n=n/10;
i++;
}
}
int main(void)
{
int i;
for (i=123;i<=987/3;i++)
{
if (judge(i))
{
printf("%d %d %d\n",i,2*i,3*i);
}
}
return 0;
}
#endif