C语言小任务——1000以内含有9的数字

步骤

第一步:分类

含有九的可能的情况:

个位有9,十位有9,百位有9,而根据组合数,我们可以得出,一共有7种情况,分别是

9##,#9#,##9, 99#,9#9,#99,999

想要按照这七种情况来找,很明显十分复杂,所以,我们采用另一种方法

第一步:求出小于1000的数字的每一位

cpp 复制代码
void getnum(int num, int* arr)
{
    int i = 0;
    for (i = 0; i < 3; i++)
    {
        arr[2 - i] = num % 10;//我们这里,让百位在第一个,
                             //十位在第二个,个位在第三个
        num /= 10;
    }
}

第二步:一旦有一个9,那么就符合标准(主函数执行逻辑判断)

cpp 复制代码
int main()
{
    int i = 0;
    int j = 0;
    int arr[3] = { 0,0,0 };
    for (i = 0; i < 1000; i++)
    {
        getnum(i, arr);
        for (j = 0; j < 3; j++)
        {
            if (arr[2-j] == 9)
            {
                printf("%d\n", i);
                break;
            }
        }
    }

    return 0;
}

这里是完整的代码

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<windows.h>
#include <stdlib.h>
#include <time.h> 
#include <math.h>
void getnum(int num, int* arr)
{
	int i = 0;
	for (i = 0; i < 3; i++)
	{
		arr[2 - i] = num % 10;//我们这里,让百位在第一个,
							 //十位在第二个,个位在第三个
		num /= 10;
	}
}

int main()
{
	int i = 0;
	int j = 0;
	int arr[3] = { 0,0,0 };
	for (i = 0; i < 1000; i++)
	{
		getnum(i, arr);
		for (j = 0; j < 3; j++)
		{
			if (arr[2-j] == 9)
			{
				printf("%d\n", i);
				break;
			}
		}
	}

	return 0;
}
相关推荐
Henry Zhu123几秒前
Qt Model/View架构详解(四):高级特性
开发语言·qt·架构
张祥64228890411 分钟前
误差理论与测量平差基础笔记六
笔记·算法·概率论
txinyu的博客14 分钟前
std::function
服务器·开发语言·c++
多多*30 分钟前
图解Redis的分布式锁的历程 从单机到集群
java·开发语言·javascript·vue.js·spring·tomcat·maven
mjhcsp1 小时前
透彻背包DP:从DFS暴力搜索到动态规划的逐步推导
算法·深度优先·动态规划
电商API&Tina1 小时前
Python请求淘宝商品评论API接口全指南||taobao评论API
java·开发语言·数据库·python·json·php
学嵌入式的小杨同学1 小时前
【嵌入式 C 语言实战】交互式栈管理系统:从功能实现到用户交互全解析
c语言·开发语言·arm开发·数据结构·c++·算法·链表
多米Domi0111 小时前
0x3f 第40天 setnx的分布式锁和redission,写了一天项目书,光背了会儿八股,回溯(单词搜索)
数据结构·算法·leetcode
乐迪信息1 小时前
乐迪信息解决港口船型识别难题!AI算法盒子检测船舶类型
人工智能·算法·智能电视
小杍随笔1 小时前
【Rust Cargo 目录迁移到 D 盘:不改变安装路径和环境变量的终极方案】
开发语言·后端·rust