• 这个我写POJ上问题1109我写代码，写很多，主题思想却很简单，主要段考虑：一位数，二位数，三数，四位数，五位数，可以看到每个前四五个数组成个三角型，而后9000个最小单位数组成上底为11，下...
/*思路：该题主要是通过阶段讨论来分阶段解决问题，每个阶段中再根据具体的情况讨论。算法的时间和空间复杂度都可望达到O(1)*/#include<stdio.h>#include<math.h>#define N1 45#define N2 9000#define N3 1386450#define N4  20891*9000 #define N 189414495int main(){ unsigned int n;  //测试用例个数 unsigned int num;//每个测试用例输入的值    unsigned int x;  unsigned int flag; unsigned int temp; unsigned int t; scanf("%d",&n); while(n--) {  scanf("%d",&num);  if(num<=45&&num>0)                 // 测试用例为1~1，2~1，3~2，10~4，11~1，45~9  {   x = (int)(sqrt(0.25+2*num)-0.5);   if((x*x+x) == 2*num)   {    printf("%d/n",x);    continue;   }   else    {    num = num - (x*x+x)/2;    printf("%d/n",num);    continue;   }  }  else if(num>45&&num<=9045)        //测试用例为 46~1，47~2，56~0，57~1，80~0,9044~9，9045~9   {   num = num - 45;   x  = (int)(sqrt(0.01*num+25*0.01)*10-5);   if((x+10)*x == num)   {    printf("%d/n",(9+x)%10);    continue;   }   else   {                num = num - (10+x)*x;    if(num>=1&&num<=9)    {     printf("%d/n",num);     continue;    }    else     {     flag = num%2;     if(flag==1)     {      printf("%d/n",(9+(num-9)/2)%10);     }     else     {      printf("%d/n",(9+(num+1-9)/2)/10);     }
}   }  }  else if(num>9045&&num<=N1+N2+N3)       //test case: 9046~1,9235~1,9236~0,9236~0  {                                      //1395493~9,1395494~9,1395495~9   num = num-9045;   x = (int)(sqrt(381.0/36.0*381+24.0/36.0*num)-381.0/6.0);   if((3*x+381)*x == 2*num)   {    printf("%d/n",(99+x)%10);    continue;   }   else    {    num = num - ((3*x+381)*x)/2;    if(num>=1&&num<=9)    {     printf("%d/n",num);     continue;    }    else if(num>9&&num<=189)    {     flag = num%2;     if(flag==1)     {      printf("%d/n",((num-9)/2+9)%10);         continue;     }     else      {      printf("%d/n",((num+1-9)/2+9)/10);      continue;     }    }    else     {     flag = num%3;     if(flag==0)     {      printf("%d/n",((num-189)/3+99)%10);      continue;     }     else if(flag==2)     {      temp = ((num+1-189)/3+99)/10;      temp = temp%10;      printf("%d/n",temp);      continue;     }     else     {      temp = ((num+2-189)/3+99)/10;      temp = temp/10;      printf("%d/n",temp);      continue;     }
}   }  }  else if(num>N1+N2+N3&&num<=N1+N2+N3+N4) //test cases:(1395495+1)~1,(1395495+2893-3)~1,(1395495+2893-2)~0  {                                       //(1395495+2893-1)~0,(1395495+2893)~0,(1398389)~1,(189414495)~9,(189414495-1)~9   num = num-N1-N2-N3;                 //(189414495-2)~9,(189414495-3)~9   x =(int)(sqrt(2891.0/16.0*2891+8.0/16.0*num)-2891.0/4.0);   if((2*x+2891)*x == num)   {    temp = (999+x)%10;    printf("%d/n",temp);    continue;   }   else    {    num =  num-(2891+2*x)*x;    if(num>=1&&num<=9)    {     printf("%d/n",num);     continue;    }    else if(num>9&&num<=189)    {     flag = num%2;     if(flag==1)     {      temp = ((num-9)/2+9)%10;      printf("%d/n",temp);      continue;     }     else     {      temp = ((num+1-9)/2+9)/10;      printf("%d/n",temp);      continue;     }    }    else if(num>189&&num<=2889)    {     flag = (num-189)%3;     if(flag==0)     {                        temp = ((num-189)/3+99)%10;      printf("%d/n",temp);      continue;     }     else if(flag == 1)     {      temp = ((num+2-189)/3+99)/10;      temp = temp/10;      printf("%d/n",temp);      continue;
}     else     {      temp = ((num+1-189)/3+99)/10;      temp = temp%10;      printf("%d/n",temp);      continue;     }    }    else if(num>2889&&num<=38889)    {     flag = (num-2889)%4;     if(flag==0)     {      temp = ((num-2889)/4+999)%10;      printf("%d/n",temp);      continue;     }     else if(flag==3)     {                         temp = ((num+1-2889)/4+999)/10;       temp%=10;       printf("%d/n",temp);       continue;     }     else if(flag==2)     {      temp = ((num+2-2889)/4+999)/10;      temp/=10;      temp%=10;      printf("%d/n",temp);      continue;     }     else if(flag==1)     {      temp = ((num+3-2889)/4+999)/10;      temp /= 10;      temp /= 10;      printf("%d/n",temp);      continue;     }
}
}
}  else  if(num>N1+N2+N3+N4&&num<=2147483647)              //test cases:189453389~0,189453388~0,189453387~0,189453386~0,189453385~1,189453390~1  {               num = num-N1-N2-N3-N4;                          //2147483647~2      //printf("%d/n",num);      x = (int)(sqrt(40.0/100*num+77783.0/100*77783.0)-77783.0/10.0);     // printf("x = %d/n",x);               if((int)(2.5*x*x+38891.5*x)==num)      {       printf("%d/n",(9999+x)%10);       continue;      }      else       {       //t = (int)(2.5*x*x+38891.5*x);       //printf("t = %d/n",t);       num = num-(int)(2.5*x*x+38891.5*x);       //printf("num = %d/n",num);       if(num>=1&&num<=9)       {                        printf("%d/n",num);       continue;       }       else if(num>9&&num<=189)       {        flag = (num-9)%2;       // temp = (num-9)/2+9;        if(flag==0)        {                         temp = ((num-9)/2+9)%10;       printf("%d/n",temp);       continue;        }        else if(flag==1)        {                           temp = ((num+1-9)/2+9)/10;         printf("%d/n",temp);         continue;        }       }       else if(num>189&&num<=2889)       {                       flag = (num-189)%3;        if(flag==0)        {         temp = ((num-189)/3+99)%10;         printf("%d/n",temp);         continue;        }        else if(flag==2)        {         temp = ((num+1-189)/3+99)/10;         temp = temp%10;         printf("%d/n",temp);         continue;        }        else         {         temp  = ((num+2-189)/3+99)/10;         temp = temp/10;         printf("%d/n",temp);         continue;        }
}       else if(num>2889&&num<=38889)       {        flag = (num-2889)%4;        if(flag==0)        {         temp = ((num-2889)/4+999)%10;         printf("%d/n",temp);         continue;        }        else if(flag==3)        {         temp = ((num+1-2889)/4+999)/10;         temp = temp%10;         printf("%d/n",temp);         continue;        }        else if(flag==2)        {         temp = ((num+2-2889)/4+999)/10;         temp = temp/10;         temp = temp%10;         printf("%d/n",temp);         continue;        }        else if(flag==1)        {         temp = ((num+3-2889)/4+999)/10;         temp = temp/10;         temp = temp/10;         printf("%d/n",temp);         continue;        }
}       else if(num>38889)       {        flag = (num-38889)%5;        if(flag==0)        {                           temp = ((num-38889)/5+9999)%10;         printf("%d/n",temp);         continue;        }        else if(flag==4)        {         temp = ((num+1-38889)/5+9999)/10;         temp = temp % 10;         printf("%d/n",temp);         continue;        }        else if(flag==3)         {         temp = ((num+2-38889)/5+9999)/10;         temp = temp/10;         temp = temp%10;         printf("%d/n",temp);         continue;        }        else if(flag==2)        {         temp = ((num+3-38889)/5+9999)/10;         temp = temp/10;         temp = temp/10;         temp = temp%10;         printf("%d/n",temp);         continue;        }        else         {         temp = ((num+4-38889)/5+9999)/10;         temp = temp/10;         temp = temp/10;         temp = temp/10;                 printf("%d/n",temp);         continue;        }       }            }    } } return 0;}
展开全文
• 1.拉普拉斯算子（Laplace Operator）n维欧里德空间中的一个二阶微分算子，定义为梯度（▽f）的散度（▽•f）。 2.OpenCV的Laplacian函数原型为：Laplacian(src, ddepth[, dst[, ksize[, scale[, delta[, ...
首先说说c#位移运算，例如：a>>b    表示a向右移动b位,则等于a除以2的b次方,而且位移运算没有小数，只取整数。而a<<b表示a向左移动b位,结果等于a乘以2的b次方。
始终左边的数都是基数，右边的数是移动的位数。
最后把二进制转换成十进制，即最终的结果。
例如：
表示（10的二进制为1010）选择第4层和第二层。


展开全文
• 　题目：给个不多于5位正整数，要求：、求它是几位数，二、逆序打印出各位数字。 　【程序21】 　题目：个5位数，判断它是不是回文数。即12321是回文数，个位与万位相同，十位与千位相同。 　【程序22】 　...
• 　实例057 获取当前日期星期 72 　实例058 获取当前年天数 73 　实例059 获取当前月天数 74 　实例060 取得当前日期天 75 　实例061 将日期格式化为指定格式 76 　实例062 使用DateDiff方法获取...
• 5、个自然数与3和是5倍数,与3差是6倍数,这个自然数最小是几? 6、在400–500之间求个数,它被2除余1,被5除余3,被9除余1,这个数是多少? 7、有一些四位数,百位数字都是3,十位数字都是6,
文章目录循环加强练习题解题
循环加强
练习题
1、求一个数是否是质数（素数）？
友情提示：质数是只能被1和自身整除的数字
2、求50~150之间的质数是那些？
3、图案的打印
4、完整计算器程序
用户输入第一个数据
用户输入操作符号
用户输入第二个数据
运算展示结果
扩展：eval()函数的使用
5、一个自然数与3的和是5的倍数,与3的差是6的倍数,这个自然数最小是几?
6、在400–500之间求一个数,它被2除余1,被5除余3,被9除余1,这个数是多少?
7、有一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是几?
8、打印输出标准水仙花数，输出这些水仙花数
9.编程求一个四位自然数ABCD,它乘以A后变成DCBA
10.编程求出满足以下条件的三位数:它除以11所得的商等于
它各位数字之和.
11.某数被80除所得的商,不但是7的倍数,而且用2,3,4,5,6去
除余数都是1,求这 个自然数.
12.有一种最简真分数,它们的分子与分母的乘积都是140,把
所有这样的真分数从小到大打印出来
13.一个五位数,若在它的后面写上一个7,得到一个六位数A,
若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此
五位数.
14.把123456789这个数乘以一个什么数,能使它的结果不但
不含零,而且仍然是 由1,2,3,4,5,6,7,8,9这九个数字组成的,
只是顺序不同而已.
15.验证:任意一个大于9的整数减去它的各位数字之和所得
的差,一定能被9整除.
16.今有四个人,他们得年龄各不相同,他们年龄总和是129,
而其中有三个人的年龄是平方数,若倒退15年,这四人中仍
有三个人的年龄是平方数,求他们各自的年龄
17.如果两个素数之差为2,这样的两个素数就叫作"孪生数",
找出100以内的所有"孪生数".
18、判断某一年是否是闰年
解题
​	1、求一个数是否是质数（素数）？
友情提示：质数是只能被1和自身整除的数字
import sys
while True:
print("1.进入系统 2.退出系统")
choice = int(input("请做出选择："))
if choice == 1:
num = int(input("请输入一个数字:"))

#定义一个布尔值,flag为真代表是素数
flag = True
#range(2,num)表示了1-num之间的数字，用num整除这之间的数字，若为0了，则不是素数，反之亦然
for i in range(2,num):
if num%i == 0:
#被整除了，所以不是质数，将flag设置为Flase
flag = False
#判断出来后，不需要再循环了，所以直接跳出即可
break
if flag:
print("{}是素数".format(num))
else:
print("%s不是素数" %(num))
elif choice == 2:
sys.exit()
else:
input("您的输入有误，请重新输入~ 按任意键继续")


#执行代码
D:\网络安全\Python\py_code>python h2-判断素数.py
1.进入系统 2.退出系统
请做出选择：3
您的输入有误，请重新输入~ 按任意键继续
1.进入系统 2.退出系统
请做出选择：1
请输入一个数字:67
67是素数
1.进入系统 2.退出系统
请做出选择：1
请输入一个数字:4
4不是素数
1.进入系统 2.退出系统
请做出选择：2


​	2、求50~150之间的质数是那些？
import sys
while True:
print("1.进入系统 2.退出系统")
choice = int(input("请做出选择："))
if choice == 1:
#使用range()函数来实现可迭代对象
for num in range(50,151):
#定义一个布尔值,flag为真代表是素数
flag = True
#range(2,num)表示了1-num之间的数字，用num整除这之间的数字，若为0了，则不是素数，反之亦然
for i in range(2,num):
if num%i == 0:
#被整除了，所以不是质数，将flag设置为Flase
flag = False
#判断出来后，不需要再循环了，所以直接跳出即可
break
if flag:
print("{}是素数".format(num))
else:
#由于题目是只打印素数，所以else语句不做任何输出内容
pass
elif choice == 2:
sys.exit()
else:
input("您的输入有误，请重新输入~ 按任意键继续")


#执行代码
D:\网络安全\Python\py_code>python h2-判断素数.py
1.进入系统 2.退出系统
请做出选择：1
53是素数
59是素数
61是素数
67是素数
71是素数
73是素数
79是素数
83是素数
89是素数
97是素数
101是素数
103是素数
107是素数
109是素数
113是素数
127是素数
131是素数
137是素数
139是素数
149是素数
1.进入系统 2.退出系统

​	3、使用循环完成如下图案的打印
*
**
***
****
*****
分析：
每行打印的内容就是行数

layer = int(input("请输入需要打印的行数："))
#外层循环控制行数，4行;使用range()函数来进行迭代，1-5
for i in range(1,layer+1):
#内层循环打印每行要显示的内容
for j in range(1,i+1):
print("*",end="")
print()

#执行代码
D:\网络安全\Python\py_code>python test.py
请输入需要打印的行数：5
*
**
***
****
*****

   *
***
*****
*******
分析：
行数		空格数		 *
1			3		1
2			2		3
3			1		5
4			0		7
可以看出每行打印的空格数位为 总的行数减去当前行数
每行打印的*的个数位 当前行数乘2减1

layer = int(input("请输入需要打印的行数："))
#外层循环控制行数;使用range()函数来进行迭代
for i in range(1,layer+1):
#定义打印的空格与*的数量
space = layer-i
start = 2*i-1

#内层循环打印每行要显示的内容
#先打印空格
for j in range(space):
print(" ",end="")

#打印*
for k in range(start):
print("*",end="")
#每行打印完成后需要换行
print()
#执行代码
D:\网络安全\Python\py_code>python test.py
请输入需要打印的行数：5
*
***
*****
*******
*********

    *
* *
*   *
*	   *
*********
分析：
这个图案与上一个图案的区别在于中间打印*的空心结构，解决办法为在打印*时，做出判断

layer = int(input("请输入需要打印的行数："))
#外层循环控制行数;使用range()函数来进行迭代
for i in range(1,layer+1):
#定义打印的空格与*的数量
space = layer-i
start = 2*i-1

#内层循环打印每行要显示的内容
#先打印空格
for j in range(space):
print(" ",end="")

#打印*
for k in range(start):
#判断空心结构的空格何时打印，
if k == 0 or k == start-1 or i==layer:
print("*",end="")
else:
print(" ",end="")
#每行打印完成后需要换行
print()

#执行代码
D:\网络安全\Python\py_code>python test.py
请输入需要打印的行数：5
*
* *
*   *
*     *
*********

   *
***
*****
*******
*****
***
*
分析：
这种对称结构，肯定是奇数行，可以分成上下两个部分来对图形进行打印，其余与第二个图案的打印方式相同

layer = int(input("请输入需要打印的行数："))

#校验层数必须是奇数行，行数不能小于2
while layer%2 ==0 or layer < 2:
layer = int(input("对不起，输入有误，请重新输入，按任意键继续~"))

"""上半部分"""
#外层循环控制行数;使用range()函数来进行迭代；分为上半部分与下半部分；
#把长的部分打印到上半部分为layer//2+1,又因为range()函数的迭代特性，再加上一个1
for i in range(1,layer//2+2):
#定义打印的空格与*的数量
space = layer-i
start = 2*i-1

#内层循环打印每行要显示的内容
#先打印空格
for j in range(space):
print(" ",end="")

#打印*
for k in range(start):
print("*",end="")

#每行打印完成后需要换行
print()

"""下半部分"""
#从整除2的部分开始打印，即短的那部分开始，步长为-1，即每行每次缩短
for i in range(layer//2,0,-1):
#定义打印的空格与*的数量
space = layer-i
start = 2*i-1

#内层循环打印每行要显示的内容
#先打印空格
for j in range(space):
print(" ",end="")

#打印*
for k in range(start):
print("*",end="")

#每行打印完成后需要换行
print()
#执行代码
D:\网络安全\Python\py_code>python test.py
请输入需要打印的行数：9
*
***
*****
*******
*********
*******
*****
***
*

   *
* *
*   *
*     *
*   *
* *
*
分析：
参考第三个图案的打印，注意上半部分的空格打印条件

layer = int(input("请输入需要打印的行数："))

#校验层数必须是奇数行，行数不能小于2
while layer%2 ==0 or layer < 2:
layer = int(input("对不起，输入有误，请重新输入，按任意键继续~"))

"""上半部分"""
#外层循环控制行数;使用range()函数来进行迭代；分为上半部分与下半部分；
#把长的部分打印到上半部分为layer//2+1,又因为range()函数的迭代特性，再加上一个1
for i in range(1,layer//2+2):
#定义打印的空格与*的数量
space = layer-i
start = 2*i-1

#内层循环打印每行要显示的内容
#先打印空格
for j in range(space):
print(" ",end="")

#打印*
for k in range(start):
"""注意这里为什么要加2,因为上半部分打印的是长的，即多出来一行"""
if k == 0 or k == start-1 or i==layer//2+2:
print("*",end="")
else:
print(" ",end="")

#每行打印完成后需要换行
print()

"""下半部分"""
#从整除2的部分开始打印，即短的那部分开始，步长为-1，即每行每次缩短
for i in range(layer//2,0,-1):
#定义打印的空格与*的数量
space = layer-i
start = 2*i-1

#内层循环打印每行要显示的内容
#先打印空格
for j in range(space):
print(" ",end="")

#打印*
for k in range(start):
"""注意这里是下半部分的打印；注意分析条件"""
if k == 0 or k == start-1:
print("*",end="")
else:
print(" ",end="")

#每行打印完成后需要换行
print()

#执行代码
D:\网络安全\Python\py_code>python test.py
请输入需要打印的行数：9
*
* *
*   *
*     *
*       *
*     *
*   *
* *
*

   *
***
* * *
*******
* * *
***
*

4、完整计算器程序
​		用户输入第一个数据
​		用户输入操作符号
​		用户输入第二个数据
​		运算展示结果
​	扩展：eval()函数的使用
import sys
while True:
print("1.运行系统 2.退出系统")
choice = int(input())
if choice == 1:
#用户的输入
num1,num2 = eval(input("请输入两个操作数："))
operator = input("请输入操作符：")
if operator == "+":
print("{}+{}={}".format(num1,num2,num1+num2))
elif operator == "-":
print("{}-{}={}".format(num1,num2,num1-num2))
elif operator == "*":
print("{}*{}={}".format(num1,num2,num1*num2))
elif operator == "/":
print("{}/{}={}".format(num1,num2,num1/num2))
else:
input("您的输入有误，请重新输入~ 按任意键继续")
elif choice == 2:
sys.exit()
else:
input("您的输入有误，请重新输入~ 按任意键继续")


#执行代码
D:\网络安全\Python\py_code>python h2-eval()函数的使用.py
1.运行系统 2.退出系统
1
请输入两个操作数：1,3
请输入操作符：-
1-3=-2
1.运行系统 2.退出系统
3
您的输入有误，请重新输入~ 按任意键继续
1.运行系统 2.退出系统
2

D:\网络安全\Python\py_code>python h2-eval()函数的使用.py
1.运行系统 2.退出系统
3
您的输入有误，请重新输入~ 按任意键继续
1.运行系统 2.退出系统
1
请输入两个操作数：1,3
请输入操作符：+
1+3=4
1.运行系统 2.退出系统
1
请输入两个操作数：1,5
请输入操作符：-
1-5=-4
1.运行系统 2.退出系统
1
请输入两个操作数：2,3
请输入操作符：*
2*3=6
1.运行系统 2.退出系统
1
请输入两个操作数：6,3
请输入操作符：/
6/3=2.0
1.运行系统 2.退出系统
2

5、一个自然数与3的和是5的倍数,与3的差是6的倍数,这个自然数最小是几?
for num in range(1000):
if ((num+3)%5==0) and ((num-3)%6==0):
break
else:
continue
print(num)

#执行代码
D:\网络安全\Python\py_code>python "h2-最小的自然数（与3的和是5的倍数,与3的差是6的倍数）.py"
27

6、在400–500之间求一个数,它被2除余1,被5除余3,被9除余1,这个数是多少?
#range()函数来迭代400-500
for i in range(400,501):
if ((i%2)==1) and ((i%5)==3) and ((i%9)==1):
print(i)
#代码执行
D:\网络安全\Python\py_code>python h3-第六题.py
433

7、有一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是几?
for i in range(9999,1001,-1):
gewei = (i%1000)%100%10
shiwei = 6
baiwei = 3
qianwei = i//1000
change = gewei+shiwei*10+baiwei*100+qianwei*1000
if ((change%2) == 0 and (change%3) == 0):
break
print(change)
for i in range(1000,10000):
gewei = (i%1000)%100%10
shiwei = 6
baiwei = 3
qianwei = i//1000
change = gewei+shiwei*10+baiwei*100+qianwei*1000
if ((change%2) == 0 and (change%3) == 0):
break
print(change)

#执行代码
D:\网络安全\Python\py_code>python de.py
9366
1362

8、打印输出标准水仙花数，输出这些水仙花数
分析：所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身，例如153是“水仙花数”，因为：153 = 1^3 + 5^3 + 3^3
for i in  range(100,1000):
gewei = (i%100)%10
shiwei = (i%100)//10
baiwei = i//100
if (gewei**3)+(shiwei**3)+(baiwei**3) == i:
print(i)

#执行代码
D:\网络安全\Python\py_code>python de.py
153
370
371
407


9.编程求一个四位自然数ABCD,它乘以A后变成DCBA
#使用range()函数来确定四位数的迭代对象
for i in range(1000,10000):
gewei = (i%1000)%100%10
shiwei = (i%1000)%100//10
baiwei = (i%1000)//100
qianwei = i//1000
#DCBA的计算方式
change = gewei*1000+shiwei*100+baiwei*10+qianwei
if (i*qianwei) == change:
print(i,end="\t")
#执行代码
D:\网络安全\Python\py_code>python test.py
1001    1111    1221    1331    1441    1551    1661    1771    1881    1991

10.编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和.
#使用range()函数来确定三位数的迭代对象
for i in range(100,1000):
baiwei = i//100
gewei = (i%100)%10
shiwei = (i%100)//10
if (i//11) ==(gewei+shiwei+baiwei):
print(i)
#执行代码
D:\网络安全\Python\py_code>python test.py
108     118     128     138     148     158     168     178     188     197     198

11.某数被80除所得的商,不但是7的倍数,而且用2,3,4,5,6去除余数都是1,求这个自然数.
分析：某数整除80所得 可以%7 为0；某数%2，3，4，5，6为1
flag = 0
for i in range(1,1000):
shang = 80//i
yushu = i%80
a = i%2
b = i%3
c = i%4
d = i%5
e = i%6
if shang%7==0 and a==1 and b==1 and c==1 and d==1 and e==1:
flag += 1
print(i,end="\t")
#flag为5或10时，换行，用于输出结果易观察
if flag == 5 or flag == 10:
print()

#执行代码
D:\网络安全\Python\py_code>python de.py
121     181     241     301     361
421     481     541     601     661
721     781     841     901     961

12.有一种最简真分数,它们的分子与分母的乘积都是140,把所有这样的真分数从小到大打印出来
#首先要确认分子分母的大小范围，当然为了，省事，可以写大点，但是为了降低代码的时间、空间复杂度，建议先分析
for i in range(1,11):
for j in range(i+1,141):
if i*j == 140:
print("{}/{}".format(i,j))

#执行代码
D:\网络安全\Python\py_code>python test.py
1/140
2/70
4/35
5/28
7/20
10/14

13.一个五位数,若在它的后面写上一个7,得到一个六位数A,若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数.
#使用range()函数来确定五位数的迭代对象
for i in range(10000,100000):
gewei = (i%10000)%1000%100%10
shiwei = (i%10000)%1000%100//10
baiwei = (i%10000)%1000//100
qianwei = (i%10000)//1000
wanwei = i//10000
#A、B的计算方式
a = 7+gewei*10+shiwei*100+baiwei*1000+qianwei*10000+wanwei*100000
b = gewei+shiwei*10+baiwei*100+qianwei*1000+wanwei*10000+7*100000
if b == a*5:
print(i)
#执行代码
D:\网络安全\Python\py_code>python test.py
14285

14.把123456789这个数乘以一个什么数,能使它的结果不但不含零,而且仍然是 由1,2,3,4,5,6,7,8,9这九个数字组成的,只是顺序不同而已.
15.验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.
思路如下，也可通过循环来完善，即自动化判断输入的位数
"""
验证:任意一个大于9的整数减去它的各位数字之和所得
的差,一定能被9整除.
"""
num = int(input("请输入一个大于9的整数："))

# (12 - (1 + 2)) / 9
# 假如就是两位
if num < 100:
gewei = num % 10
shiwei = num // 10
if (num - (gewei + shiwei)) % 9 == 0:
print("验证通过")
else:
print("验证失败")

elif num > 99 and num < 1000:
# 三位数的
gewei = (num%100)%10
shiwei = (num%100)//10
bawei = num//100
if (num - (gewei + shiwei + bawei)) % 9 == 0:
print("验证通过")
else:
print("验证失败")
else:
pass

#代码执行
D:\网络安全\Python\py_code>python test.py
请输入一个大于9的整数：13
验证通过

D:\网络安全\Python\py_code>python test.py
请输入一个大于9的整数：123
验证通过

16.今有四个人,他们得年龄各不相同,他们年龄总和是129,而其中有三个人的年龄是平方数,若倒退15年,这四人中仍有三个人的年龄是平方数,求他们各自的年龄
17.如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
分析：
​	需先判断出100以内的素数，然后将这些素数存储在某一种数据结构中，我采用的是列表，循环的方式判断”孪生数“
ls = []
#外层循环用于迭代0-100的数字，1不做判断
for num in range(2,101):
#定义一个布尔值,flag为真代表是素数
flag = True
#内层循环用于判断
for i in range(2,num):
if num%i == 0:
#被整除了，所以不是质数，将flag设置为Flase
flag = False
#判断出来后，不需要再循环了，所以直接跳出即可
break
if flag:
#将所有的素数存储在容器中，这里的容器选择列表，因为可以通过下标来进行访问
ls.append(num)
else:
#由于题目是只打印素数，所以else语句不做任何输出内容
pass
print("1~100以内的素数有：")
print(ls)
# 找出100内的孪生数
index = 1
while index < len(ls):
#为防止下标越界，采用如下方式
if ls[index] - ls[index - 1] == 2:
print("{}和{}是孪生数".format(ls[index], ls[index - 1]))
index += 1

#执行代码
D:\网络安全\Python\py_code>python test.py
1~100以内的素数有：
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
5和3是孪生数
7和5是孪生数
13和11是孪生数
19和17是孪生数
31和29是孪生数
43和41是孪生数
61和59是孪生数
73和71是孪生数

18、判断某一年是否是闰年
分析：
（1）能被4整除但不能被100整除；
（2）能被400整除；
year = int(input("请输入一个年份："))
if (year%4==0 and year%100!=0) or year%400 == 0:
print("%s是闰年"%year)
else:
print("{}不是闰年".format(year))
#执行代码
D:\网络安全\Python\py_code>python test.py
请输入一个年份：2000
2000是闰年

D:\网络安全\Python\py_code>python test.py
请输入一个年份：1990
1990不是闰年



展开全文
• ## python

2021-01-17 21:57:07
有一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是几? 2、编程求个四位自然数ABCD,它乘以A后变成DCBA 3、如果两个素数之差为2,这样的两个素数就...
编程题
有一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是几? 2、编程求一个四位自然数ABCD,它乘以A后变成DCBA 3、如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数"
for i in range(1000,10000):
if ((i // 100) % 10) 3 and ((i // 10) % 10 ) 6 and (i % 2) == 0 and (i % 3) == 0:
min = i
print(‘这样的数最小是%s’%min)
break
#再从满足要求的最小的这个数开始查找符合要求最大的数，依次赋值给max，直到循环结束的max就是最大的符合要求的数
for i in range(min,10000):
if ((i // 100) % 10) 3 and ((i // 10) % 10 ) 6 and (i % 2) == 0 and (i % 3) == 0:
max = i
print(‘这样的数最大是%s’%max)


展开全文
• 如果你知道密码(当然不大于8位的,如果大于8,那易优是爆不出来),比如说你知道是6,那么你就只在6前面方框里打勾,别就不要选了,这样出来字典会最小,生成得快,起来也快. 如果不知道是几位,但只知道...
• 却有着严格的要求，这数字电路的一个特点。 2 系统的总体设计： 2.1 原理设计 本频率计的设计以AT89S52 单片机为核心，利用它内部的定时/计数器完成 待测信号周期/频率的测量。单片机AT89S52 内部具有2 个16 ...
• 本软件不仅是一个强大数学学习工具，包括了从初中到大学几乎所有数学函数、平面解析几何、重要公式等以及他们相关图像，而且也工程测量数理统计等部门最佳辅助运算工具,十几种统计分析预测模型及他们...
• 题意：给定两个素数四位m,n（不含前导0）,求从m转化到n至少需要次 ...然后分别只变换个位，十位，百位，千位四种情况来bfs 注意：最高位数字不能为0，对于四位素数肯定都奇数，这样可以减少bfs次数
• 因为树的高度 logn, 也二叉查找树所有形态中高度最小的树；我们试着来分析一下： <pre><code> // 对于颗包含 n 个节点完全二叉树 // 1. 除了最后层外，每层的节点层节点个数的2倍...
• 5.7给定个不多于5位的正整数，要求：①求它是几位数；②分别打印出每一位数字；③按逆序打印出各位数字。例如原数为321，应输出123。 13 5.8企业发放奖金根据利润提成。利润I低于或等于10万元时，奖金可提10％；...
• 再将a[1]到a[9]中最小的数与a[1]对换……每比较一轮，找出一个未经排序的数中最小的一个。) 2. 有10个数存放在一个数组中，输入一个数，要求用折半查找法找出该数数组中第个元素的值。如果该数不在数组中，则...
• 得到单元格编号组中最大的数或最小的数 标记出3个最大最小值 取前五名，后五名的方法 如何用公式求出最大值所在的行？ 求多个最高分 如何求多条件的平均值 想求出第三大之数值 【查询和查找引用】 查找顺序公式 怎样...
• 程序分析：对n进行分解质因数，应先找到最小的质数k，然后按下述步骤完成： (1)如果这个质数恰等于n，则说明分解质因数的过程已经结束，打印出即可。 (2)如果n<>k，但n能被k整除，则应打印出k的值，并用n除以k...
• 　9、微机中1K字节表示的二进制位数是 　A)1000 B)8x1000 C)1024 D)8x1024 　10、下列字符中，ASCII码值最小的是 　A)a B)A C)x D)Y 　11、Windows 98操作系统是个 　A)单用户多任务操作系统 B)单用户单任务操作...
• 个三位数，各位数字互不相同，十位数字比个位、百位数字之和还要大，且十位、百位数字之和不是质数。编程找出所有符合条件三位数。 注：1. 不能手算后直接打印结果。 2. “质数”即“素数”，指除1和自身...
• 2.4.10 RAND——返回0到1之间的一个随机数 89 2.4.11 RANDBETWEEN——返回某个范围内的随机数 91 2.5 三角函数计算 91 2.5.1 DEGREES——将弧度转换为角度 91 2.5.2 RADIANS——将角度转换为弧度 92 2.5.3 SIN...
• http://acm.hit.edu.cn/ojs/show.php?Proid=1018&Contestid=0 历时两天,...思想很简单,先搜一位数,然后两数~~直到搜到答案或搜索不能继续为止.搜索前要先对Xi进行排序,以保证搜到最小.注意答案可能很大,因此要用
• ## EXCEL函数公式集

热门讨论 2010-03-16 03:26:38
得到单元格编号组中最大的数或最小的数 标记出3个最大最小值 取前五名，后五名的方法 如何用公式求出最大值所在的行？ 求多个最高分 如何求多条件的平均值 想求出第三大之数值 【查询和查找引用】 查找顺序公式 怎样...
• 给变量赋初值变量说明的一部分，赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔，而赋值语句则必须用分号结尾。 3.在变量说明中，不允许连续给多个变量赋初值。 如下述说明错误的： int a=b=c=5 必须...
• 10 ABS 这个函数用来计算个数绝对值，与正负数符号没有关系。 11 ACCRINT 返回定期付息有价证券应计利息。 12 ACOS 返回数字反余弦值。反余弦值角度，它余弦值为数字。返回角度值以...
• 091　计算工龄最小的女员工的工龄 179 092　计算材料的3个最少消耗量 180 093　提取每月销量倒数第二的商品 182 ◎中值函数 183 094　计算3月份产品销量中值 183 095　设定社保缴费基数上下限 185 096　查找...
• 其中，m和n都整数，m指定总位数，n指定小数点后保留几位，如果m或n不足，则按实际位数输出。 例1：指定小数点后保留2，其余四舍五入： %.2f 3.14159 = 3.14 例2：指定全部5，且小数点后保留3，其余...