蓝桥杯练手之回文数字

观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。

    本题要求你找到一些5位或6位的十进制数字。满足如下要求:

    该数字的各个数位之和等于输入的整数。

【输入格式】

一个正整数 n(10<n<100), 表示要求满足的数位和。

【输出格式】

若干行,每行包含一个满足要求的5位或6位整数。

数字按从小到大的顺序排列。

#include<stdio.h>
int main()
{
	int flag,k,i,m,j;
	flag=1;
	printf("输入一个两位数\n");
	scanf("%d",&k);
	if(10<k&&k<99&&flag==1)
	{
		for(i=10000;i<=99999;i++)
		{//判断五位数
			    int a[5],s2;
				m=i;s2=0;
			    for(j=0;j<5;j++)
			        {
			        	a[j]=m%10;
						m=m/10;
			     	}
				for(j=0;j<5;j++)
					{
						s2=s2+a[j];
					}
		    	if(k==s2)
				{
						int w=0;
						for(j=0;j<2;j++)
						{	
							if(a[j]==a[4-j])
							{ 
								w++;
							}	 
						}				
					if(w==2)
						{
								printf("%d\n",i);
						}
	    	}
			
		}

		for(i=100000;i<=999999;i++)
		{//判断六位数
			    int a[6],s;
				m=i;s=0;
			    for(j=0;j<=5;j++)
			        {
			        	a[j]=m%10;
						m=m/10;
			     	}
				for(j=0;j<=5;j++)
					{
						s=s+a[j];
					}
		    	if(k==s)
				{
						int w=0;
						for(j=0;j<3;j++)
						{	
							if(a[j]==a[5-j])
							{ 
								w++;
							}	 
						}				
					if(w==3)
						{
								printf("%d\n",i);
								flag=0;		
						}
	    	}
			
		}
	}
	else
		printf("输入的不合法"); 
return 0;

}


转载于:https://www.cnblogs.com/zhuhengjie/p/5966936.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值