标题:带分数
来源:互联网 发布:python rqalpha 编辑:程序博客网 时间:2024/06/05 22:54
#include<stdio.h>
//思路:先把9个位置全部排列出来,再筛选符合条件的
int v[10]={0};
int m[10];
int cnt=0;
long long n;
void check()//写成乘法,避免错误 ,第一个加数为一位数,两位数;
{
if(n*(m[7]*100+m[8]*10+m[9])==(m[1]*(m[7]*100+m[8]*10+m[9])+(m[2]*10000+m[3]*1000+m[4]*100+m[5]*10+m[6])))
{
cnt++;
}
if(n*(m[7]*100+m[8]*10+m[9])==((m[1]*10+m[2])*(m[7]*100+m[8]*10+m[9])+(m[3]*1000+m[4]*100+m[5]*10+m[6])))
{
cnt++;
}
}
void out()//检查排列是不是真确的
{
for(int j=1;j<=9;j++)
{
printf("%d",m[j]);
}
printf("\n");
}
void dfs(int n)//全排列算法
{
if(n==10)
{
check();
//out();
return ;
}
for(int i=1;i<=9;i++)
{
if(v[i]==0)
{
v[i]=1;
m[n]=i;
dfs(n+1);
v[i]=0;
}
}
}
main()
{
scanf("%d",&n);
dfs(1);
printf("%d",cnt);
return 0;
}
//思路:先把9个位置全部排列出来,再筛选符合条件的
int v[10]={0};
int m[10];
int cnt=0;
long long n;
void check()//写成乘法,避免错误 ,第一个加数为一位数,两位数;
{
if(n*(m[7]*100+m[8]*10+m[9])==(m[1]*(m[7]*100+m[8]*10+m[9])+(m[2]*10000+m[3]*1000+m[4]*100+m[5]*10+m[6])))
{
cnt++;
}
if(n*(m[7]*100+m[8]*10+m[9])==((m[1]*10+m[2])*(m[7]*100+m[8]*10+m[9])+(m[3]*1000+m[4]*100+m[5]*10+m[6])))
{
cnt++;
}
}
void out()//检查排列是不是真确的
{
for(int j=1;j<=9;j++)
{
printf("%d",m[j]);
}
printf("\n");
}
void dfs(int n)//全排列算法
{
if(n==10)
{
check();
//out();
return ;
}
for(int i=1;i<=9;i++)
{
if(v[i]==0)
{
v[i]=1;
m[n]=i;
dfs(n+1);
v[i]=0;
}
}
}
main()
{
scanf("%d",&n);
dfs(1);
printf("%d",cnt);
return 0;
}
1 0
- 标题:带分数
- 蓝桥杯:标题-带分数
- 带分数
- 带分数
- 带分数
- 带分数
- 带分数
- 带分数
- 带分数
- 带分数
- 带分数
- 带分数
- 带分数
- 带分数
- 带分数
- 带分数
- 带分数
- 带分数
- 第一天学习JDBC(2)-批处理、配置文件
- 一个简单的Android自定义view详解
- android Spinner控件详解
- IO
- 三种方法求最大公约数
- 标题:带分数
- 堆排序(C语言实现)迭代
- 1231231
- 学习C#-推荐网站
- git 异常
- 《Html5,基础知识、核心技术与前沿案例》阅读笔记- 待续
- c#学习第二天(今天)0.0 嘿
- 2017年清华大学计算机科学与技术系考研小结
- Linux下编写第一个c语言程序hello world