菜鸟做了个梦,被难住了。

netyhl 2010-01-10 08:49:50
话说昨天晚上月黑风高,屋外寒风细雨。
在下喝多了两口,迷迷糊糊睡着了,忽然,一同学出现,胡子拉杂的,很是拉风。

:哥们,小哥最近搞到一批手机连号,900张
哥们是要发了哦。

我一听笑了,不就是几百张卡吗,乐成这样。

他可不这样想。
他说你想这几百张卡里有多少靓号吗?
知道一个靓号多少钱了?

我看他那得意样,我就说了,也就那么一点吧,没多少的,这个问题还不是算下就出来了。

于是我试着想了想,这尾号带8的多少个,连号8的多少个,138的又多少个.......
鉴于他这连号也就后面3位数是连的,从0到999
虽然不大,但我梦迷糊了半天也没算出大概多少个
于是我和他说,你别急啊,我帮你写个程序,一运行就知道多少个了,而且还知道是哪些号。

于是开始写起来,从#include开始,折腾半天也没搞好,急的我突然醒了。

于是继续想啊想,还是无果。


用数组遍历那还不死人啊
不用数组那怎么搞??
实在是憋着了,特到论坛沾点仙气!
求详解。

大概就是这样的,0到999
列出其中带8的号,连号(比如123,456,987等),同号(111,222,333等),头连号(011,119,886等),尾连号(911,866,688等)
...全文
180 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yorkzjy 2010-01-11
  • 打赏
  • 举报
回复
lZ你应该朝着自己优势的方向发展。
netyhl 2010-01-11
  • 打赏
  • 举报
回复
真的是做梦,不是作业贴!
我自学C++,没作业的

貌似对我来说有点复杂,好了再贴代码
  • 打赏
  • 举报
回复
2个规则即可
1:检测每个位是否有数一样
2.是否满足连号



int trans(int num,int *res)
{
int i=0;
while(num)
{
res[i++]=num%10;
num/=10;
}
return i;
}

int main()
{
int res[3],bit_map[10]; //
int i,j,b;
int join;
for(i=1;i<1000;++i)
{
memset(res,0,3*sizeof(int));
memset(bit_map,0,10*sizeof(int));
join=0;
b=trans(i, res);
for(j=0;j<b;++j) //检测重号
{
if(bit_map[res[j]]==0)
bit_map[res[j]]++;
else
cout<<i<<" ";
}
for(j=1;j<b;j++) //检测连号
{
if(res[j]!=res[j-1]-1)
{
join=1;
break;
}
}
if(join==0)
cout<<i<<" ";
}
}
IamDeane 2010-01-10
  • 打赏
  • 举报
回复
确实很有编剧的才能啊
beefliu 2010-01-10
  • 打赏
  • 举报
回复
这是个好故事
ghost0088 2010-01-10
  • 打赏
  • 举报
回复
自己的作业自己做。
shuilongyin_00 2010-01-10
  • 打赏
  • 举报
回复
+011 再判断下是不是 ?99+011

+110 再判断下是不是 99?+110

+111 再判断下是不是 ?99+111 或 99?+111

同号 111+111 再……
连号 123+111 再……

头连号 110+110 再……
尾连号 011+011 再……
dskit 2010-01-10
  • 打赏
  • 举报
回复
900,用数组遍历那还不死人啊
不死人,你数都能数出来,
作业还是自己做吧
cocat 2010-01-10
  • 打赏
  • 举报
回复
楼主甚牛~这都能想得到。。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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