社区
C语言
帖子详情
求一个简单的C语言算法题
kinsey0514
2007-02-05 09:48:12
找出所有六位数中满足下列条件的数字
就是若在此6位数中相邻3个或3个以上数字相同,找出这些数,并显示出来。
...全文
508
12
打赏
收藏
求一个简单的C语言算法题
找出所有六位数中满足下列条件的数字 就是若在此6位数中相邻3个或3个以上数字相同,找出这些数,并显示出来。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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语言
入门3——循环结构(上)
博客涵盖了10道
C语言
算法
题
,包括
求
奇数和、
求
给定精度的
简单
交错序列部分和、统计数字字符和空格等。详细介绍了每道
题
的
题
目要
求
、输入格式、输出格式,并给出了输入样例和输出样例,为
C语言
算法
学习提供参考。
数学专业浅浅的说一下我对
C语言
分支循环语句的看法
博主分享刷
题
感受,认为使用
C语言
分支循环可解决很多
简单
算法
题
。并给出两道
题
示例,一是
求
两数最大公约数,在for循环中加入and条件;二是
求
素数,通过先将flag设为1来提高运算效率,还给出了相应代码。
求
和(2022蓝桥杯A组试
题
C)
博客围绕蓝桥杯
C语言
算法
题
展开,问
题
是
求
给定n个整数两两相乘再相加的和。给出输入输出示例,还给出不同得分的代码。解
题
思路是用两个for循环模拟
题
目要
求
进行
简单
直接编码。
十月份第三周笔试
题
本文分享了作者参加网宿科技与上海先锋商泰的技术面试经历,包括网宿科技的笔试
题
涉及
C语言
编程、数据结构与
算法
,以及面试中遇到的
求
最大子矩阵和的问
题
。上海先锋商泰的笔试
题
包括树与森林的构造、
简单
的四则混合运算、给不同区域着色等问
题
,面试环节则出了一道统计bit流中1的个数的
算法
题
。
C语言
经典最基础
算法
题
(从小白到大神)
本文精选了多个
C语言
编程中的经典
算法
题
目,并提供了详细的代码实现。包括寻找最大值、计算特殊数学序列、字符串比较等实用案例,适合初学者快速上手。
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章