新手天翼
#include <iostream>
#include <string>
using namespace std;
int n,m,b[105],s;
int main() {
int n;
cin>>n;
for(int i=0;i<=9;i++){
for(int j=0;j<=9;j++){
for(int x=0;x<=9;x++){
for(int z=0;z<=9;z++){
for(int l=0;l<=9;l++){
for(int i1=0;i1<=9;i1++){
for(int j1=0;j1<=9;j1++){
for(int x1=0;x1<=9;x1++){
for(int z1=0;z1<=9;z1++){
for(int l1=0;l1<=9;l1++){
if(i*10000+j*1000+x*100+z*10+l>i1*10000+j1*1000+x1*100+z1*10+l1&&i*10000+j*1000+x*100+z*10+l/i1*10000+j1*1000+x1*100+z1*10+l1==n)
s++;
}
}
}
}
}
}
}
}
}
}
cout<<s;
}
我是不是想的太难了?
奇妙算式
题目描述 Description
给定一个正整数n(n<=80),请你求出有多少种形如 abcde / fghij = n 的式子(正好除尽),其中a~j 分别取0~9中不重复的数字,组成的数字首位可以是0。
输入描述 Input Description
输入一个正整数n
输出描述 Output Description
输出满足 abcde / fghij = n 的式子有多少种
样例输入 Sample Input
3
样例输出 Sample Output
8
数据范围及提示 Data Size & Hint
满足 abcde / fghij = 3 的式子有8种:
17469/05823=3
17496/05832=3
50382/16794=3
53082/17694=3
61749/20583=3
69174/23058=3
91746/30582=3
96174/32058=3
高级光能
你好!
首先,你的代码有问题(废话)
原因:请注意审题!
你判断了喵?
优化:
你为什么要枚举这么多?直接枚举abcde和fghij他不香吗?????
代码:
想啥呢!
不知道你是考试题还是刷题。
如果你没学过,那么这个判断不重复数字可能有点难。
思路:定义一个桶,while(k)//可以定义函数,注意赋值,否则会改变传递过来的值{
桶[k%10]++;//提取每一位,放到桶里
k/=10;//剔除最后一位
遍历桶,如果全是1,则输出。
——————————————
细节:这道题你这样写绝对不是满分。
因为如果你的j<10000,那么若i中不包含0,且j也没有的话,就会不算,其实是算的,因为首位补0.
所以你要加一个特判:if(j<10000)a[0]=1;//这里我把数组下标从0开始,若你也这么写,注意遍历时i初值==0
偶呦,你是不是心花怒放,觉得自己AC了?
错错错错错!
桶清零!!!!!
——————————————————
优化++
你可以(必须,否则超时)将j定义为i/3;
——————————————————
优化[100010]
你可以加一个特判:如果i%3!=0,a[0||1||2||……||9]=2;//这样即使有这个数也不影响桶!
这道题总体来说不难,当要注意细节。
PS 这是考试题吗?你考多少?我是500.
新手天翼