编译没有报出任何的错误,但是没有办法运行

独恒而后 2020-09-10 12:30:10
请大佬们,看看我的代码,在devc上编译没有出现问题,但是当我输出数据时,程序却没有输出数据,我一步一步的检查发现,我的程序不能进入我写的bfs()函数中,可是bfs()这个函数是没有问题的,这是为什么呢?求助,大佬们。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+100;
struct node
{
int x[N];
int len;
};
int k,n;

ll ksm(int a,int b)
{
if(!b) return 1;
ll temp=ksm(a,b/2);
if(b%2) return temp*temp*a;
return temp*temp;
}

ll get_num(int a[],int len)
{
ll sum=0;
for(int i=1;i<=len;i++)
sum+=ksm(k,a[i]);//,printf("%d ",a[i]);
//printf("\n%lld\n",sum);
return sum;
}

void bfs()
{
//printf("1\n");
priority_queue<int> res;
queue<node> q;
node t;
t.len=1,t.x[1]=0;
q.push(t);
//printf("%d \n",q.empty());
while(!q.empty())
{
node now=q.front();
q.pop();
// printf("%d \n",now.len);
ll w=get_num(now.x,now.len);
res.push(w);
if(res.size()==n)
{
printf("%lld\n",res.top());
break;
}

for(int i=now.x[now.len]+1;i<=50;i++)
{
node d;
d.len=now.len+1;
d.x[d.len]=i;
q.push(d);
}
}
return ;
}

int main()
{
scanf("%d%d",&k,&n);
// printf("%d %d \n",k,n);
bfs();

return 0;
}
...全文
86 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
独恒而后 2020-09-10
  • 打赏
  • 举报
回复
引用 2 楼 qybao 的回复:
你的res泛型为int,但却存入long long,编译时也提示?
当把res的类型改为long long类型,还是一样的,没有办法进入bfs()函数
qybao 2020-09-10
  • 打赏
  • 举报
回复
你的res泛型为int,但却存入long long,编译时也提示?
Simple-Soft 2020-09-10
  • 打赏
  • 举报
回复
输入两个整数了吗?

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧