Pensamientos desencadenados por una pregunta (0): Use un ciclo while para sacar cada dígito de cada número.

@author: Bzdhxs_nt;
@date: 2020/11/4;
Causa: Un ejercicio de OJ de un estudiante de primer año en una escuela. La
descripción simple es ingresar una n (0 <= n <= 9), y cuántos n caracteres hay allí del 1 al 2020.
Luego tenemos que sacar el número de cada dígito de cada número. Antes de esto, solo usaría% general y / para tratar, ¡pero es demasiado problemático enfrentar esta pregunta!
A continuación, se explica cómo utilizar la instrucción while para obtener un número:

	while(x)     
	{
    
    
		t = x%10;
		x /= 10}

análisis

while(x)     
	{
    
    
		t = x%10;  //用10取余来得到x的个位 ,并赋值给t;
				   //用个printf就取出个位! 
		x /= 10//整除10获得失去个位的x1;
				   //后循环进行,当x只剩一位时, 
	}			   //被取余10得到最高位,被整除10得到x = 0,				
				   //while 循坏结束 从个 十 百 ...的顺序		
				   //取出每位。		

La introducción de funciones es conveniente, pero lo que obtiene es el orden inverso de clasificación. Por lo tanto, se puede usar para invertir el orden de un número, ¡lo cual es muy conveniente!
Finalmente, se da el código fuente de esta pregunta:

/* 利用while循环分离数的每位
@author:Bzdhxs_nt;
@date:2020/11/4;    */ 

#include<stdio.h>
int main()
{
    
    
	int n,t;
	scanf("%d",&n);
	int s=0;
	for(int x = 1;x <= 2020;x++)//遍历
	{
    
    	
	int b = x;
	while(b)    //遍历 1 到 2020,即b; 
	{
    
    
	t = b%10;	// 用取余取出b的每位赋值给t 
	if(t == n)	s++;//当t== n时给s加一最后用s来输出要求的N的数量
	b /= 10;
	}
	}
	printf("%d",s);
	return 0;
}

¡Espero señalar si hay algo incorrecto!
Gracias por tu orientación y déjame resolver este problema.
Bienvenido a discutir conmigo.

Supongo que te gusta

Origin blog.csdn.net/qq_51687628/article/details/109501971
Recomendado
Clasificación