学习小结
来源:互联网 发布:淘宝驳回售后服务 编辑:程序博客网 时间:2024/06/14 00:43
将1,2,3,4,5,6,7,8,9九个数字分成N=XX(XXXX/XXX)的形式
#include <stdio.h>
int main()
{
int x;
int j;
int k;
int i;
int l;
int m;
int n;
int p;
int q;
int o;
int a [ 9 ];
for( x = 12; x<99; x++) //遍历x
for( j = 1234; j<9877; j++) //遍历j
for( k = 123; k < 988; k++) //遍历k
{
m = j;
n = k;
a [ 7 ] = x/10; //将x分解成构成的数字
a [ 8 ] = x%10;
for( i = 0,l = 1000; i<4; i++) //将j分解成构成的四个数字
{
a [ i ] = m/l;
m %= l;
l /= 10;
}
for( i = 4,l = 100; i<7; i++) //将k分解成构成的三个数字
{
a [ i ] = n/l;
n %= l;
l /= 10;
}
if( a [ 0 ]*a [ 1 ]*a [ 2 ]*a [ 3 ]*a [ 4 ]*a [ 5 ]*a [ 6 ]*a [ 7 ]*a [ 8 ] == 362880) //构成x,j,k的九个数字是否等于9!
{
for( i = 0; i<8; i++) //判断九个数字是否相同,全部不同则跳出循环
{
for( p = i+1; p<9; p++)
{
q = a [ i ];
o = a [ p ];
if(q == o)
break;
}
if( p != 9)
break;
}
if( j%k == 0 && i == 8) 当j能被k整除且九个不同数字都能输出时,输出N=XX(XXXX/XXX)
printf("N = %d(%d/%d)\n",x,j,k);
}
}
}
此题需要当心判断条件,首先要满足的就是九个数是1,2,3,。。。。,9构成,这里利用他们的乘积满足九的阶乘且九个数字各个不同。
if( a [ 0 ]*a [ 1 ]*a [ 2 ]*a [ 3 ]*a [ 4 ]*a [ 5 ]*a [ 6 ]*a [ 7 ]*a [ 8 ] == 362880) //构成x,j,k的九个数字是否等于9!
{
for( i = 0; i<8; i++) //判断九个数字是否相同,全部不同则跳出循环
{
for( p = i+1; p<9; p++)
{
q = a [ i ];
o = a [ p ];
if(q == o)
break;
}
if( p != 9)
break;
我这里利用了两个for循环中再加入if语句判断,当前面的数不同于后面所有的数,最后当满足排列后再跳出循环。
if( j%k == 0 && i == 8)
最后用j能被k整除带入其中,i == 8则是验证之前循环是否完成。
0 0
- [学习小结]Ajax小结
- 面试小结 学习小结
- 学习小结
- 学习小结
- 学习小结
- 学习小结
- 学习小结
- 学习小结
- 学习小结
- 学习小结
- 学习小结
- 学习小结
- 学习小结
- 学习小结
- 学习小结
- 学习小结
- 学习小结
- 学习小结
- Android动画之View Animation(视图动画)
- Java API 小结
- 值得深思的面试题
- pom.xml解释
- 第一个CSDN博客!
- 学习小结
- gridview 表头合并
- 宽字节 多字节 mbstowcs wcstombs
- springboot快速入门
- 重新装Mysql后原来数据的恢复办法
- C++对象模型之第二章——构造函数语义学
- 媒体和相机:ExoPlayer
- Struts2框架基础篇
- 【剑指offer】反转链表