枚举01个数,状态压缩DP都可以。
不过这不是重点,同学你首先要认识到的一点是“代码是将程序员的解决问题的逻辑思考转化为计算机可以看懂的物理实现”,所以当一个代码没有产生正确的输出时,要么是你的解决问题的“逻辑”错了,要么是你将“逻辑”转化为代码的过程错了。
就这个题来说,你的“逻辑”不对,因为计算机平均每秒只能做10^8左右次计算,你要枚举10^1000内的所有数字再去判断可能得计算到宇宙毁灭都计算不完,请参考其它回答了解怎样是解决这个题目的高效率的办法。
然后,你的实现也不对,你要了解到C语言中int类型并不是真正意义上的整数,多数情况下它只能表示2^-31~2^31-1内的数。而pow(x,y)也不是真正意义上的实数,多数情况下它只有十多位有效数字的精度。去学习一下二进制相关知识和计算机中数字的表示吧。