Knoka705 2021-11-07 09:20 采纳率: 0%
浏览 44
已结题

请各位帮帮忙,实在想不出来了

c语言,定义一个函数,判断一个数各个位是否都为4或7,实在想不出来怎么定义了😭
#include<stdio.h>
#include<math.h>
int Lo(int n);
int Hao(int n);
int main()
{
int T, n;
scanf_s("%d", &T);
while (T--)
{
scanf_s("%d", &n);
if (Hao(n))
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
int Hao(int n)
{
int i, k;
k = 0;
for (i = 1; i <= n; i++)
{
if (Lo(i))
k = 1;
}
if (k == 1)
return 1;
else
return 0;
}
int Lo(int n)
{
int m, k = 1;
m = n;
while (m > 0)
{
if (m % 10 != 4 && m % 10 != 7)
{
k = 0;
break;
}
m = m / 10;
}
if (k == 1)
return 1;
else
return 0;

}****

  1. 第一行输入一个整数T,表示样例的个数(1<=T<=100)
    在每个样例中,每行输入一个整数n(1<=n<=1e12)

  2. 对于每个样例,如果n为真~好数,请输出YES,否则输出N0

人工智能总班长兼人柱力小轩在研究天体的运动时,突发奇想出了一种奇怪的数,称为好数,好数的定义如下:
一个数各个位只包含4和7的数称为好数,如47,744,4,但是467不是。
而他的室友篮球之神小孟,在听完好数的定义后想出了一种更奇怪的数,称为真好数,真好数的定义如下:
一个数的因数中有 好数 ,则称该数为 真好数,如35的因数7为好数,则35为真好数
现给你一个数n,判断该数是否为 真~好数。
如果是请输出YES,如果不是 请输出N0;

展开全部

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-11-07 09:21
    关注

    用求余获得各个位就可以

    #include <stdio.h>
    int main()
    {
        int n,m,k=1;
        scanf("%d",&n);
        m = n;
        while(m>0)
        {
            if(m%10 ! = 4 && m%10 != 7)
            {
                  k = 0;
                  break;
              }
              m = m/10;
        }
        if(k==1)
            printf("yes");
        else
            printf("no");
        return 0;
    }
    
    
    评论
  • AlenYuh 2021-11-07 09:25
    关注

    函数片段

    int is4or7(int n)
    {
        int m,is4or7=0;
        m=n%10;
        if((m==4)||(m==7))
        is4or7=1;
        return is4or7;
    }
    
    评论
编辑
预览

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月7日
  • 修改了问题 11月7日
  • 修改了问题 11月7日
  • 创建了问题 11月7日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部