很有技巧的一道數學題。
本題思路:假設要求的數字為a,去除的為第k位,那麼按照這個規則,將a劃分為三段:高位c,k位b,低位a,則x=a*10^(k+1)+b*10^k+c去除後為b=a*10^k+c,那麼n=a+b=(11a+b)*10^k+2c;
但是由於2c有可能帶來進製,可能會使b進1,但是不會對a出現影響,那麼a就可以直接求出了。再通過a求出b,然後求出c;求c時分進製和沒有進製兩種情況,記錄下來,然後排序一下輸出。
view code
#include#includeusing
namespace
std;
intmain()
if((--b>=0)&&(a||b))//
這裡不用else,a,b相同的情況c有可能不同
}if (num==0) printf("
no solution.");
else
}puts(
"");}}
hdu 1271 整數對 詳解
注意事項 1.該數字可以是其本身。例 10本身符合條件。2.結果中可能出現重複數字,使用陣列時注意。例 12結果可能是兩個11。假設x為其一解。把x分為三部分 a,b,c。b為要去掉的那個數字,a為b前面的數字,c為b後面的數字。則 原x a 10 k 1 b 10 k c 變化後y a 10 k ...
HDU 1271 數論,有點巧妙,改天再研究
假設a中去掉的數在第k 1位,可以把a分成三部分,低位,k,和高位。a a b 10 k c 10 k 1 b a c 10 k n a b 2 a b 10 k c 10 k 11 其中b是一位數,b 10 k不會進製,用10 k除n取整就可以得到b 11c,再用11除,商和餘數就分別是c和b了。...
整數搜尋之整數對
問題描述 設b是正整數a去掉乙個數字後的正整數,對於給出的正整數n,尋求滿足和式a b n的所有正整數對a,b。思想方法 1 根據給定的n設定整數a的列舉迴圈,a的取值範圍為n 2 1 n 1。對每乙個a,計算b n a,檢驗b 是否為a去掉乙個數字後的正整數。2 設計關於t 1,的迴圈,由賦值表示...