题目是:
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
1.我想问下这里的j表示啥意思
2.我想知道int(str1[j])为啥要这样写呢,这样写表达的意思是什么我没看太懂
题目是:
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
1.我想问下这里的j表示啥意思
2.我想知道int(str1[j])为啥要这样写呢,这样写表达的意思是什么我没看太懂
首先第一个for循环是将10000到1000000之间的数字都进行了遍历。
举个例子,当遍历到10005时,将10005转换成str类型,方便后面的从右看赋值给str2,下面str2是将数字从右看,此时str2=5001。在第二个for循环中,in后面的rang(str1)是算出10005是多少位的数字,这里是5,所以这里的for j in...是为了循环5次,同时这里的j也有定义后面str1的索引值的作用,比如循环的第一次,此时j=0,得到str1[0]=1。循环第五次时,此时j=4,得到str1[4]=5。
至于int(str1[j]),是因为不用int转换的话,str1是字符串类型,不能进行数值相加。字符串相加是进行字符串拼接。比如a=5(str类型的),b=6(str类型的),a+b=56。只有a=5(int类型的),b=6(int类型的),a+b=11
如果解决了你的问题,麻烦点下采纳