社区
C语言
帖子详情
求一个简单的C语言算法题
kinsey0514
2007-02-05 09:48:12
找出所有六位数中满足下列条件的数字
就是若在此6位数中相邻3个或3个以上数字相同,找出这些数,并显示出来。
...全文
479
12
打赏
收藏
求一个简单的C语言算法题
找出所有六位数中满足下列条件的数字 就是若在此6位数中相邻3个或3个以上数字相同,找出这些数,并显示出来。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lzwyg
2007-02-06
打赏
举报
回复
排列效率最高
今晚打老虎33333333
2007-02-05
打赏
举报
回复
int Help(int a[], unsigned int n)
{
if(a == NULL)
{
return -1;
}
int tmp;
int count = 1;
for(int i = 0;i < n; i++)
{
if(a[i] == a[i+1])
{
tmp = a[i];
count++;
}
else
{
//如果大于3则打印
if(count > 2)
{
printf("Number is %d\ , %d times\n", tmp, count);
}
count = 1;
}
if(i == n -1)
{
//如果大于3则打印
if(count > 2)
{
printf("Number is %d\ , %d times\n", tmp, count);
}
}
}
return 0;
}
kangzuo
2007-02-05
打赏
举报
回复
楼上好象不对啊
好多数没找到
=========================
是现写的程序,没有测试过,知识思想行了。
细心看有个bug,修改一下:
int iNum, iTemp, iRe, iT1, iT2;
for(iNum=100000;iNum<1000000;iNum++)
{
iRe=0;
iTemp = iNum;
iT1 = iT2 = -1; //原来是iT1 = iT2 = 0;
while(1)
{
iT1 = iTemp % 10;
iTemp = iTemp / 10;
if(iTemp==0)break;
if(iT1==iT2)iRe++;
else iRe=0;
iT2 = iT1;
if(iRe>=2)printf("%d\r\n", iNum); //原来是iRe>2
}
}
jixingzhong
2007-02-05
打赏
举报
回复
程序直接判断也是可以的:
数据很多,
建议输出到文件中查看吧
(编译后得到 test.exe, dos下使用命令 test.exe>>test.txt 将结果输出到文件)
#include <stdio.h>
#include <stdlib.h>
int main()
{
long l=100000;
char tmp[8]={0};
char *check[]={"000","111","222","333","444","555","666"
,"777","888","999"};
for(; l<1000000; l++)
{
int i;
sprintf(tmp, "%ld", l);
for(i=0; i<10; i++)
if(strstr(tmp, check[i]) != NULL)
{
printf("%ld\t", l);
break;
}
}
system("PAUSE");
return 0;
}
kinsey0514
2007-02-05
打赏
举报
回复
楼上好象不对啊
好多数没找到
jixingzhong
2007-02-05
打赏
举报
回复
排列是比较快的办法,
将3个 0-9中的各个数值, 以及 任意一个 3联数(比如111、222等),如此四个元素进行排列即可,注意考虑一下首位不能为0 。
kangzuo
2007-02-05
打赏
举报
回复
直接组合出来不就可以了???靠,这样的东西也需要查找?
======================================================
对,直接组合效率更高,我怎么没想到
kangzuo
2007-02-05
打赏
举报
回复
int iNum, iTemp, iRe, iT1, iT2;
for(iNum=100000;iNum<1000000;iNum++)
{
iRe=0;
iTemp = iNum;
iT1 = iT2 = 0;
while(1)
{
iT1 = iTemp % 10;
iTemp = iTemp / 10;
if(iTemp==0)break;
if(iT1==iT2)iRe++;
else iRe=0;
iT2 = iT1;
if(iRe>2)printf("%d\r\n", iNum);
}
}
kinsey0514
2007-02-05
打赏
举报
回复
怎么组?
积木
2007-02-05
打赏
举报
回复
直接组合出来不就可以了???靠,这样的东西也需要查找?
bpttc
2007-02-05
打赏
举报
回复
一时粗心,写错一句,现在改正
#include <stdio.h>
#include <stdlib.h>
void main()
{
int iNum, iTemp, iLst, iRe;
for(iNum=100000; iNum<1000000; ++iNum)
{
iLst = iNum%10; //上面这处写错了
iRe = 0;
for(iTemp=iNum/10; iTemp>0; iTemp/=10)
{
if(iTemp%10 == iLst)
{
++iRe;
}
else
{
iRe = 0;
iLst = iTemp%10;
}
if(2 == iRe)
{
printf("%d\n", iNum);
system("pause");
break;
}
}
}
}
bpttc
2007-02-05
打赏
举报
回复
#include <stdio.h>
void main()
{
int iNum, iTemp, iLst, iRe;
for(iNum=100000; iNum<1000000; ++iNum)
{
iLst = iTemp%10;
iRe = 0;
for(iTemp=iNum/10; iTemp>0; iTemp/=10)
{
if(iTemp%10 == iLst)
{
++iRe;
}
else
{
iRe = 0;
iLst = iTemp%10;
}
if(2 == iRe)
{
printf("%d\n", iNum);
break;
}
}
}
}
迷宫
算法
c语言
经典代码
迷宫
算法
c语言
代码。迷宫
算法
c语言
经典代码迷宫
算法
c语言
经典代码
C语言
经典
题
目900例
《
C语言
经典
题
目900例》的出现,正是为了那些渴望深入探索
C语言
奥秘的编程爱好者提供了
一个
实用的实践平台。在这份资源集合中,我们不仅可以看到
C语言
的全貌,还能通过解决
一个
个精选的编程
题
目来提升自己的编程技能...
笔试
算法
26
题
总的来说,"笔试
算法
26
题
"是
一个
宝贵的资源,它可以帮助准备笔试的
求
职者系统地学习和练习
算法
,从而提高他们在面试中的竞争力。通过深入理解
C语言
、掌握各种
算法
的原理与应用,并不断通过实际编程来锻炼,将有助于...
免费下载:
C语言
难点分析整理.doc
这部分提供了一些常用的
C语言
算法
的源代码。 ### 83.
C语言
有头结点链表的经典实现 这部分提供了有头结点链表的具体实现。 ### 84.
C语言
惠通面试
题
这部分包含了一些针对
C语言
的面试
题
目。 ### 85.
C语言
常用宏...
IT面试笔试
题
集锦
在实际笔试过程中,
题
集可能会包含
算法
题
,比如排序
算法
(快速排序、归并排序、堆排序等)、查找
算法
(二分查找、哈希查找等)以及数据结构(栈、队列、链表、树、图等)。这些
算法
不仅考察编码能力,还测试解决问
题
...
C语言
70,020
社区成员
243,264
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章