while i >0:
k += m[i-1]* t # t记录某一位置对应的权值
t *=10
i -=1
4.确定程序框架
程序的流程图如图所示。
5.完整的程序
%%time
# 回文数if __name__ =='__main__':
m =[1]*17
count =0print("No. number it's square(palindrome)")for n inrange(1,256):# 穷举n的取值范围
k, i, t, a =0,0,1, n*n # 计算n的平方
squ = a
while a !=0:# 从低到高分解数a的每一位存于数组m[1]~m[16]
m[i]= a %10
a //=10
i +=1while i >0:
k += m[i-1]* t # t记录某一位置对应的权值
t *=10
i -=1if k == squ:
count +=1print("%2d%10d%10d"%(count, n, n*n))
%%time
# 回文数判断if __name__ =='__main__':
x =int(input("请输入一个5位数整数:"))if x <10000or x >99999:print("输入错误")else:
ten_thousand = x //10000#拆分最高位万位
thousand = x %10000//1000#拆分千位
ten = x %100//10#拆分十位
indiv = x %10#拆分个位if indiv == ten_thousand and ten == thousand:print("%d是回文数"%x)else:print("%d不是回文数"%x)
12321是回文数
CPU times: user 60.4 ms, sys: 11.3 ms, total: 71.7 ms
Wall time: 5.86 s
forEach ,map,for ,for in , for of 1 forEach 回调3个参数value,index,arr(原数组) 2 map
1:map() 不会改变原始数组 2:函数的作用是对数组中的每一个元素进行处理,返回新的元素…
1、B站视频链接:E20 背包DP 求具体方案_哔哩哔哩_bilibili #include <bits/stdc.h>
using namespace std;
const int N1010;
int v[N],w[N];
int f[N][N],p[N][N];int main(){int n,m;cin>>n>>m;for(int i1;i<n;i)cin>>v[i]>>w[i…