题目1. 写一函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间有一个空格。
如输入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 CHOISE 1
#if CHOISE//题目一
void transfor(int n,char*p)
{
int i=0;
while (n)
{
*(p+i) = n%10+'0';
n = n/10;
if (n)
{
i++;
*(p+i) = ' ';
}
i++;
}
for (i=i-1;i>=0;i--)
{
printf("%c",*(p+i));
}
}
int main(void)
{
int n;
char*p=NULL;
printf("请输入四位数字的整数:\n");
scanf("%d",&n);
p = (char*)malloc(sizeof(char)*8);
transfor(n,p);
return 0;
}
#else//题目二
int judge_1(int n)
{
int i,j,k;
k = n%10;
n = n/10;
j = n%10;
n = n/10;
i = n%10;
return i*j*k;
}
int judge_2(int n)
{
int i,j,k;
k = n%10;
n = n/10;
j = n%10;
n = n/10;
i = n%10;
return i+j+k;
}
int main(void)
{
int i;
for (i=123;i<=329;i++)
{
if (judge_1(i)*judge_1(2*i)*judge_1(3*i)==1*2*3*4*5*6*7*8*9 && judge_2(i)+judge_2(2*i)+judge_2(3*i)==45)
{
printf("%d %d %d\n",i,2*i,3*i);
}
}
return 0;
}
#endif