Redian新闻
>
谁给推荐个带高清视频、像质又好、外形有q、最好还有3X-5X+变焦的小数码?
avatar
谁给推荐个带高清视频、像质又好、外形有q、最好还有3X-5X+变焦的小数码?# PhotoGear - 摄影器材
a*y
1
you are given nos 1,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 u hav to form a 9 digit no such
dat 1st 2 digits are divisible by 2,1st 3 digits are divisible by 3,1st 4
digits are divisible by 4 and so on..... (repetitions not allowed)
但是我觉得那个最后fail的情况我return -1 不太好,这样即使fail了还会再在这个错
的上面try组合,虽然我让他即使退出了,但是还会有函数调用在stack上,还有怎么能
让这个函数return那个正确的值哪?本体只有一个正确的值
int GenerateNumber(string input, int digit, bool used[],int number, int n)
{
int temp = 0;
//early termination if failed
int numbeofdigit = 0;
int tempnumber = number;
while (tempnumber)
{
tempnumber /= 10;
numbeofdigit++;
}
if (numbeofdigit < digit)
return -1;
if (digit == 9)
{
cout << number<< endl;
return number;
}
for (int i = 0; i{
if (!used[i])
{
if (digit >= 1)
{
if ((number*10 + (input[i] - '0'))%(digit+1) == 0)
{
int total = number*10 + (int)(input[i] - '0');
used[i] = true;
temp = GenerateNumber(input, digit+1, used, total,n);
used[i] = false;
}

}
else
{

int total = number * 10 + (int)(input[i] - '0');
used[i] = true;
temp = GenerateNumber(input, digit+1, used, total,n);
used[i] = false;
}
}
}
return -1;
}
avatar
b*w
2
有这样的小数码吗?你用过的就行,谢了
avatar
p*2
3
bruteforce+prunning?
avatar
d*0
4
SD780有720P。画质比较一般
avatar
a*y
5
我晕,你怎么prune
avatar
a*l
6
其他都能满足,像质好不容易

【在 b*w 的大作中提到】
: 有这样的小数码吗?你用过的就行,谢了
avatar
p*2
7
答案是381654729
avatar
l*n
8
这题有问题,1st 5 digits are divisible by 5,就说个位数必须是5,但是1st 2
digits are divisible by 2,说个位数必须是偶数
我理解有问题?

【在 a*******y 的大作中提到】
: you are given nos 1,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 u hav to form a 9 digit no such
: dat 1st 2 digits are divisible by 2,1st 3 digits are divisible by 3,1st 4
: digits are divisible by 4 and so on..... (repetitions not allowed)
: 但是我觉得那个最后fail的情况我return -1 不太好,这样即使fail了还会再在这个错
: 的上面try组合,虽然我让他即使退出了,但是还会有函数调用在stack上,还有怎么能
: 让这个函数return那个正确的值哪?本体只有一个正确的值
: int GenerateNumber(string input, int digit, bool used[],int number, int n)
: {
: int temp = 0;
: //early termination if failed

avatar
p*2
9

你理解有问题吧?看我答案。

【在 l******n 的大作中提到】
: 这题有问题,1st 5 digits are divisible by 5,就说个位数必须是5,但是1st 2
: digits are divisible by 2,说个位数必须是偶数
: 我理解有问题?

avatar
l*n
10
好像全部从左边算起的,我想的是右边

【在 p*****2 的大作中提到】
:
: 你理解有问题吧?看我答案。

avatar
p*2
11

嗯。很常规的一道题。楼主是面啥公司碰到的?

【在 l******n 的大作中提到】
: 好像全部从左边算起的,我想的是右边
avatar
a*y
12
对,这题很常规,recursion就行了,我的问题不是这个,我的问题是怎么修改让他返
回正确值
avatar
p*2
13

int dfs(StringBuffer sb, boolean[] visited)
{
int len=sb.length();

if(len>0 && Integer.parseInt(sb.toString())%len!=0)
return -1;

if(len==9)
return Integer.parseInt(sb.toString());

for(int i=1;i<=9;i++)
{
if(!visited[i])
{
sb.append(i);
visited[i]=true;
int ret=dfs(sb,visited);
visited[i]=false;
sb.deleteCharAt(sb.length()-1);
if(ret>0)
return ret;
}
}
return -1;
}

【在 a*******y 的大作中提到】
: 对,这题很常规,recursion就行了,我的问题不是这个,我的问题是怎么修改让他返
: 回正确值

avatar
a*y
14
你这个和我写的那个没啥区别,却别是你用java
not all path have return value

【在 p*****2 的大作中提到】
:
: int dfs(StringBuffer sb, boolean[] visited)
: {
: int len=sb.length();
:
: if(len>0 && Integer.parseInt(sb.toString())%len!=0)
: return -1;
:
: if(len==9)
: return Integer.parseInt(sb.toString());

avatar
p*2
15

你的问题是什么?

【在 a*******y 的大作中提到】
: 你这个和我写的那个没啥区别,却别是你用java
: not all path have return value

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。