C语言每日一练——第87天:有限5位数

C语言每日一练
2022年4月6日

题目描述

个位数为6且能被3整除的五位数共有多少?

问题分析

【最笨的方法】五位数的范围是10000~99999,将这个范围内所以满足个位数为6且能被3整除的所有数字找出。

代码实现


#include <stdio.h>

int main()
{
    
    
    int i = 0, cnt = 0;
    for(i = 10000; i <= 99999; i++)
    {
    
    
        if(i % 3 == 0 && i % 10 == 6)
        {
    
    
            printf("%-6d", i);
            cnt++;
            if(cnt % 5 == 0)
                printf("\n");
        }
    }
    printf("个位数为6且能被3整除的五位数共有%d个\n", cnt);
    return 0;
}

运行结果

在这里插入图片描述

网上参考

原文链接:https://www.cnblogs.com/chaolong/archive/2013/05/18/3086240.html

在这里插入图片描述

/**
 * @file   018c.c
 * @author Chaolong Zhang <[email protected]>
 * @date   Sat May 18 21:41:48 2013
 *
 * @brief  个位数是6且能被3整除的五位数一共有多少个
 *
 *
 */
#include <stdio.h>

int main(int argc, char *argv[])
{
    
    
	int count=0;
	int n1,n2,n3,n4;
	for (int i = 1000; i <= 9999; ++i)
 	{
    
    
 		n1=i%10;
		n2=(i/10)%10;
		n3=(i/100)%10;
		n4=(i/1000);
		if (0== (n1+n2+n3+n4)%3 ) count++;
	}
	printf ("the total number is %d\n", count);
	return 0;
} 

扩展题

求100到1000之间有多少个其数字之和为5的整数。

#include <stdio.h>

int main()
{
    
    
    int i = 0, cnt = 0;
    for(i = 100; i < 1000; i++) //1000不考虑,只考虑三位数
    {
    
    
        if(i / 100 % 10 + i / 10 % 10 + i % 10 == 5)
        {
    
    
            printf("%-4d", i);
            cnt++;
            if(cnt % 5 == 0)
                printf("\n");
        }
    }
    printf("100到1000之间有%d个其各位数字之和为5的整数。\n", cnt);
    return 0;
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43772810/article/details/123982568