| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1020 人关注过本帖
标题:试求含有数字7且不能被7整除的5位整数的个数,求思路详细指导!
只看楼主 加入收藏
梁2
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-12-5
结帖率:100%
收藏
已结贴  问题点数:9 回复次数:8 
试求含有数字7且不能被7整除的5位整数的个数,求思路详细指导!
试求含有数字7且不能被7整除的5位整数的个数
哪有错,求思路!!
#include<stdio.h>
#include<stdlib.h>
main()
{
    int a[5]={0};
    int flag=0;/*标记位置*/
    int j,i,t,m;
    i=0;m=0;
    for(i=10000;i<=99999;i++)
    {
        printf("%d\n",i);
        t=i;
        for(j=0;j<5;j++)
        {
            a[j]=t%10;
            t=t/10;
            printf("%d",a[j]);
            if(a[j]==7)
            {
                flag=1;
                break;
            }
        
        }
        if(flag==1&&i%7!=0);
        {
            m++;
            printf("%9d\n",i);
        }
        flag=0;
    }
    printf("M=%d",m);
    system("pause");
}
搜索更多相关主题的帖子: include 
2013-09-25 11:42
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:1 
if(flag==1&&i%7!=0);  多了分号

总有那身价贱的人给作业贴回复完整的代码
2013-09-25 12:13
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:4 
void main()
{
    int count = 0;

    for(int i=10000;i<=99999;i++)
    {
        if (i % 7 == 0) {
            continue;
        }

        int temp = i;

        while (temp) {
            if (temp % 10 == 7)
            {
                count++;
                printf("第 %d 个:%d.\n", count, i);
                break;
            }

            temp /= 10;
        }
    }


    printf("共有 %d 个数字符合.\n", count);
}


第 32145 个:99973.
第 32146 个:99975.
第 32147 个:99976.
第 32148 个:99977.
第 32149 个:99978.
第 32150 个:99979.
第 32151 个:99987.
第 32152 个:99997.
共有 32152 个数字符合.

C:\code\tmp\echo\Debug>

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-09-25 12:16
xufan
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:232
专家分:804
注 册:2008-10-20
收藏
得分:0 
这是我写的一个例子,你看看
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include <iostream>

#define  LEN  5
#define  FLAG '7'
#define  ISTRUE true
#define  ISFALSE false

bool isExistServen(std::string& strValue)
{
    std::string::const_iterator it;

    for (it = strValue.begin(); it != strValue.end(); it++)
    {
        if (*it != FLAG)
            continue;
        else
            return ISTRUE;
    }
    if (it == strValue.end())
        return ISFALSE;

    return ISFALSE;
}

int main()
{
    char buf[16] = {'\0'};
    std::string strValue;
    for(int i=10000;i<=99999;i++)
    {
        sprintf(buf,"%d",i);
        strValue = buf;
        if (isExistServen(strValue)&&(i%7 != 0))
            std::cout<<"i = "<<i<<std::endl;
    }
    system("pause");

    return 0;
}


~~~~~~我的明天我知道~~~。
2013-09-25 12:27
xufan
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:232
专家分:804
注 册:2008-10-20
收藏
得分:0 
以下是引用xufan在2013-9-25 12:27:51的发言:

这是我写的一个例子,你看看#include
#include
#include  
 
#define  LEN  5
#define  FLAG '7'
#define  ISTRUE true
#define  ISFALSE false
 
bool isExistServen(std::string& strValue)
{
    std::string::const_iterator it;
 
    for (it = strValue.begin(); it != strValue.end(); it++)
    {
        if (*it != FLAG)
            continue;
        else
            return ISTRUE;
    }
    if (it == strValue.end())
        return ISFALSE;
 
    return ISFALSE;
}
 
int main()
{
    char buf[16] = {'\0'};
    std::string strValue;
    for(int i=10000;i<=99999;i++)
    {
        sprintf(buf,"%d",i);
        strValue = buf;
        if (isExistServen(strValue)&&(i%7 != 0))
            std::cout<<"i = "<
我把函数bool isExistServen(std::string& strValue) 修改了下:
程序代码:
bool isExistServen(std::string& strValue)
{
    unsigned int nPos = strValue.find(FLAG,0);
    if (nPos != std::string::npos)
        return ISTRUE;
    else
        return ISFALSE;
}


~~~~~~我的明天我知道~~~。
2013-09-25 12:37
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
以下是引用xufan在2013-9-25 12:27:51的发言:

这是我写的一个例子,你看看#include<stdio.h>
#include<stdlib.h>
#include <iostream>

#define  LEN  5
#define  FLAG '7'
#define  ISTRUE true
#define  ISFALSE false

bool isExistServen(std::string& strValue)
{
    std::string::const_iterator it;

    for (it = strValue.begin(); it != strValue.end(); it++)
    {
        if (*it != FLAG)
            continue;
        else
            return ISTRUE;
    }
    if (it == strValue.end())
        return ISFALSE;

    return ISFALSE;
}

int main()
{
    char buf[16] = {'\0'};
    std::string strValue;
    for(int i=10000;i<=99999;i++)
    {
        sprintf(buf,"%d",i);
        strValue = buf;
        if (isExistServen(strValue)&&(i%7 != 0))
            std::cout<<"i = "<<i<<std::endl;
    }
    system("pause");

    return 0;
}



bool isExistServen(std::string& strValue)
{
    std::string::const_iterator it;

    for (it = strValue.begin(); it != strValue.end(); it++)
    {
        if (*it != FLAG)
            continue;
        else
            return ISTRUE;
    }
    if (it == strValue.end())
        return ISFALSE;

    return ISFALSE;
}
这个函数的算法,我表示很吐血。先不说是否有find的,逻辑上搞的乱七八糟,的如果我看到我的项目有这样的代码,真的想抽人~

你觉得这样的逻辑等价于下面的吗?

bool isExistServen(std::string& strValue)
{
    std::string::const_iterator it;
    for (it = strValue.begin(); it != strValue.end(); it++)
    {
        if (*it == FLAG)
             return ISTRUE;
    }

    return ISFALSE;
}

[ 本帖最后由 yuccn 于 2013-9-25 13:49 编辑 ]

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-09-25 13:43
在这里爬起
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:43
专家分:113
注 册:2013-8-9
收藏
得分:3 
#include<stdio.h>
#include<stdlib.h>
void main()
{
    int a[5];
    int flag=0;/*标记位置*/
    int j,i=0,t,m=0;
    for(i=10000;i<=99999;i++)
    {
        t=i;
        for(j=0;j<5;j++)
        {
            a[j]=t%10;
            t=t/10;
            if(a[j]==7)
            {
                flag=1;
                break;
            }
        
        }
        if(flag==1&&i%7!=0)
        {
            m++;
            printf("%9d\n",i);
        }
        flag=0;
    }
    printf("M=%d",m);
    system("pause");
}
这个吧
2013-09-25 14:19
林凡
Rank: 2
等 级:论坛游民
帖 子:31
专家分:61
注 册:2013-7-29
收藏
得分:0 
回复 楼主 梁2

这是我编的一个,楼主看咋样,呵呵!!
#include <stdio.h>
void main()
{
    int A1,A2,A3,A4,A5,i,count=0;
    for(i=10000;i<=99999;i++)
    {
        A1=(i/10000);
        A2=((i/1000)%10);
        A3=((i/100)%10);
        A4=((i/10)%10);
        A5=(i%10);
        
        if(A1==7||A2==7||A3==7||A4==7||A5==7)
        
        {    if(i%5==0)
            {
            count++;
            printf("%d\n",i);
            }
        }
    }

    printf("%d",count);

}


2013-09-25 21:23
快速回复:试求含有数字7且不能被7整除的5位整数的个数,求思路详细指导!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017424 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved