博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 1271 整数对(思路题)
阅读量:5019 次
发布时间:2019-06-12

本文共 1776 字,大约阅读时间需要 5 分钟。

假设删除第k位,把整数A表示成如下形式:

A = a * 10^(k+1) + b * 10 ^k + c;

则: B = a * 10^k + c;

N = A + B = (11*a+b)*10^k + 2*c;

显然:

11*a+b = N / (10^k)

2*c = N % (10^k)

但是c有可能产生进位,产生的影响为:

11*a+b+1 = N/(10^k)【b+1最多为10,不会影响到11*a的值】

2*c = N % (10^k) + 10^k;

把这两种情况分别考虑一下。

注意一下细节:

1.a和b不能同时为零

2.b的取值范围是0~9,如果b的值等于10,一定是产生进位的情况

#include 
#include
#include
#include
using namespace std;const int MAXN = 10010;int ans[MAXN];int Ten[20];void init(){ Ten[0] = 1; for ( int i = 1; i < 20; ++i ) Ten[i] = Ten[i - 1] * 10; return;}int GetBit( int N ){ for ( int i = 0; i < 20; ++i ) if ( Ten[i] > N ) return i; return -1;}int main(){ init(); int N; while ( scanf( "%d", &N ) != EOF && N != 0 ) { int cnt = 0; int limit = GetBit(N); for ( int k = 0; k < limit; ++k ) { int a, b, c; int mi = Ten[k]; int temp = N / mi; a = temp / 11; b = temp % 11; c = ( N % mi ) / 2; if ( ( a || b ) && b < 10 && a*mi*10 + b*mi + c + a*mi + c == N ) ans[cnt++] = a*mi*10 + b*mi + c; --b; c = ( N % mi + mi ) / 2; //b>=0不小心写成了b>0 if ( ( a || b ) && b >= 0 && a*mi*10 + b*mi + c + a*mi + c == N ) ans[cnt++] = a*mi*10 + b*mi + c; } sort( ans, ans + cnt ); cnt = unique( ans, ans + cnt ) - ans; if ( cnt == 0 ) puts("No solution."); else { for ( int i = 0; i < cnt; ++i ) { if ( i ) putchar(' '); printf( "%d", ans[i] ); } puts(""); } } return 0;}

 

转载于:https://www.cnblogs.com/GBRgbr/p/3399967.html

你可能感兴趣的文章
Codeforces 689A Mike and Cellphone
查看>>
Python入门之Python Colorama模块
查看>>
HDU 3853-loop(概率dp入门)
查看>>
spring mvc 引入log4日记记录maven工程 slf4j和log4j输出到控制台配合使用log4j不输出到文件...
查看>>
单片机按键长短按得识别原理
查看>>
Bootstrap按钮组学习
查看>>
ArcGIS AddIN开发之 设置当前工具为Edit Tool
查看>>
Luogu-P1020(导弹拦截)(DP,LIS ,二分优化)
查看>>
抽象类与接口
查看>>
SQL Server中默认数据库和默认表的作用
查看>>
Java生鲜电商平台-支付模块的设计与架构
查看>>
VC++6.0,VB6.0,VFP6.0下载
查看>>
将数据导出成excel表
查看>>
Codeforces 628F Bear and Fair Set
查看>>
webpack4.0 实战记录
查看>>
移动端适配
查看>>
网络对抗技术_作业一_201521430001
查看>>
MJRefresh第三方库浅析
查看>>
ThreadPoolExecutor源码解析
查看>>
linux 下用户组、文件权限详解
查看>>