网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
09月23日
漏签
0
天
c语言吧
关注:
792,827
贴子:
4,314,440
看贴
图片
吧主推荐
视频
游戏
27
回复贴,共
1
页
<<返回c语言吧
>0< 加载中...
求助
取出1000以内含有k个d的所有质数
只看楼主
收藏
回复
fadista
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
其中k是数字个数,d是十进制0到9的十个数字,大佬们,能不能给我点思路哇,这题我卡了三四个小时了,最后写出个这么个东西,可是编译通过后,答案我看都看不懂
#c语言#
fadista
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
本人是小白,代码水平一坨屎,可能读起来比较困难,佬们见谅
fadista
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
int main()
{
int n,d,k,j;
int i=2,times=0,isPrime=1,m=2;
scanf("%d %d",&k,&d);
while(i++<1000){
n=i;times=0;
while(n>0){
int low=n%10;
n/=10;
if(low==d)times++;
}
if(times==k){
m=i;
}
for(j=2;j<=sqrt(m);j++){
if(m%j==0){
isPrime=0;
break;
}
}
if(isPrime){
printf("%d ",m);
}
}
return 0;
}
Tlebαγοh
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这是由于条件判断出错导致的。首先①满足k个d数,②这个数是质数,你的程序中没有满足①,m不变但是满足了②,从而导致不断输出重复的数。其他明显的问题有:第一,i++<1000此处自增会导致i变化,比如开始i为2满足条件进入循环,但是i变成了3;二、isPrime没有更新,需要在每次循环开始时置为1,否则一旦遇到非质数且满足①的数就不会再输出了
六翼幻世
帕秋莉糕
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
fadista
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
佬们,我把实现从1000里包括k个d的数取出来的部分和求1000以内所有质数的部分分别拿了出来,您们能具体指出我自己把这两个结合在一起的程序有哪里不对吗
小熊骑单车
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我是暴力枚举可能,k等于1有d在个十百三种可能。k等于2有百十,百个,十个三种可能,k等于3其实可以忽略,因为不可能是素数
浮空日珥
低能力者
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
区区一千,不如直接打表
dzmcobk
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
time=k判断时,不用赋值,不等于直接continue就行。
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示