精华内容
下载资源
问答
  • Python程序:任意输入一个三位数,然后把三位数的位置反转输出。 第一种方法,把输入的三位数百位、十位和个位依次表示出来,然后将个位数字和百位数字进行交换。 #输入number = 123,输出321 number = int(input('请...

    第一种方法,把输入的三位数百位、十位和个位依次表示出来,然后将个位数字和百位数字进行交换。

    #输入number = 123,输出321
    number = int(input('请输入一个三位数:'))
    a = number%10  #个位
    b = number//10%10  #十位
    c = number//100  #百位
    re_number = a*100 + b*10 + c
    print('%d的反转数是:%d'%(number,re_number)) #第一种输出方式
    print('{0}的反转数是:{1}'.format(number,re_number)) #第二种输出方式
    

    第二种方法,将输入的三位数以字符串的形式用list()方法列表化,然后逆序从列表中依次取出个位、十位、百位,输出的时候注意将str类型转换为int类型。

    #输入number = 123,输出321
    number = input('请输入一个三位数:')
    list1 = list(number) #将输入的三位数的字符串存入列表
    list1.reverse() #将列表元素反转
    a = int(list1[0]) #取出反转后列表的元素并将其类型转为int类型
    b = int(list1[1])
    c = int(list1[2])  #也可以不反转列表,直接反着取出列表中的元素
    re_number = a*100 + b*10 + c
    print('%s的反转数是:%s'%(number,re_number))
    print('%d的反转数是:%d'%(int(number),re_number))
    

    以上就是我所想到的输出3位数反转数的方法,大家有什么好的想法欢迎交流。

    我是Python老赵,原创不易,希望大家多多关注。

    展开全文
  • 定义一个整型变量并赋任意正整数作为初始值,判断它是不是五回文2.定义一个整型变量并赋任意正整数作为初始值,输出各位数字之和3. 定义整型变量 a、b,写出将 a、b 两个变量值进行互换的程序(要求不能...

    1.定义一个整型变量并赋任意五位正整数作为初始值,判断它是不是五位回文数

    (五位回文数:个位与万位相同,十位与千位相同,例如:12321)

    public class PalindromicNumber {
    
    	public static void main(String[] args) {
    		//定义一个整型变量并赋任意五位正整数作为初始值
    		int num = 12321;
    		//定义一个数组
    		int[] n = new int[5];
    		//把每一位数放到数组当中
    		for(int i = n.length-1;i>=0;i--){
    			n[i] = num%10;
    			num /= 10;
    		}
    		//判断是否为回文数
    		//第一位数字 == 最后一位数字
    		//第二位数字 == 倒数第二位数字
    		for(int i = 0; i<n.length/2;i++){
    			if(n[i] != n[n.length-i-1]){
    				System.out.println("这个数不是回文数!");
    				return;
    			}
    			}
    		System.out.println("这个数是回文数!");
    	}
    
    }
    

    2.定义一个整型变量并赋任意五位正整数作为初始值,输出各位数字之和

    (例如:12345 各位之和是:1+2+3+4+5 。也就是 15)

    public class Sum {
    
    	public static void main(String[] args) {
    	    //定义一个整型变量并赋任意五位正整数作为初始值
    		int num = 12345; 
    		//定义一个整型变量sum为0
    		int sum = 0;
    		//定义一个数组
    		int[] n = new int[5];
    		//把每一位数放到数组当中
    		for(int i = n.length-1;i>=0;i--){
    			n[i] = num%10;
    			num /= 10;
    		}
    		//将每一位的数字相加
    		for(int i=0;i<=n.length-1;i++){
    			 sum += n[i];
    		}
    		System.out.println("这个五位数各位数字之和为:"+ sum);
    
    	}
    
    }
    
    

    3. 定义整型变量 a、b,写出将 a、b 两个变量值进行互换的程序(要求不能使用第三个变量)

    public class Exchange {
    
    	public static void main(String[] args) {
    		int a = 5;
    		int b = 7;
    		//将两个变量的和储存在a中
    		a = a+b; 
    		//用总和减去b, 得到的就是a原来得值
    		//将它赋值给b
    		b = a-b;
    		//用总和减去a, 得到的就是b原来得值
    		//将它赋值给a
    		a= a-b;
    		System.out.println("a = "+ a);
    		System.out.println("b = "+ b);
    	}
    
    }
    

    4. 请写出一段遵守编码规范的 Hello World 代码

    public class HelloWorld {
    
    	public static void main(String[] args) {        //主方法
    		System.out.println("Hello World");         //打印输出
    
    	}
    
    }
    
    展开全文
  • 题意:一个字符串由数字和*号组成,每次操作可以交换其中任意两个数字,问K次操作后,所有可能结果的和 思路:可以针对其中进行操作 操作分为1.内的操作 2..外的操作 3.内的一个数和...

    题意:一个字符串由数字和*号组成,每次操作可以交换其中任意两个数字,问K次操作后,所有可能结果的和

    思路:可以针对其中三个数进行操作

    操作分为1.三个数内的操作

    2..三个数外的操作

    3.三个数内的一个数和外面的数的操作

    然后就可以递归求解,再加一个记忆化搜索

    #include<bits/stdc++.h>
    const long long mod=1000000007;
    using namespace std;
    int L,K;//长度和操作次数
    long long p10[55];//10的i次
    int cnt[11];//每个数出现次数,方便统计
    int dp[11][11][11][51];//第i,j,k个数运行k次的次数
    int dfs(int a,int b,int c,int k) {//递归求解
        if (k==K)
            return b==10?a*c:0;
        if (a>c)
            swap(a,c);
        if (~dp[a][b][c][k])
            return dp[a][b][c][k];
        dp[a][b][c][k]=0;
        /**自己三个数交换**/
        dp[a][b][c][k]+=dfs(b,a,c,k+1);if(dp[a][b][c][k]>=mod) dp[a][b][c][k]-=mod;
        dp[a][b][c][k]+=dfs(c,b,a,k+1);if(dp[a][b][c][k]>=mod) dp[a][b][c][k]-=mod;
        dp[a][b][c][k]+=dfs(a,c,b,k+1);if(dp[a][b][c][k]>=mod) dp[a][b][c][k]-=mod;
        long long all=(L-3)*(L-4)/2;//除三个数意外的数选两个的次数
        /**除这三个数外的数交换**/
        dp[a][b][c][k]+=all*dfs(a,b,c,k+1)%mod;
        if(dp[a][b][c][k]>=mod) dp[a][b][c][k]-=mod;
        /**三个数中的一个和别的数交换**/
        int tt[11];
        memcpy(tt,cnt,sizeof tt);
        tt[a]--;tt[b]--;tt[c]--; ///将这三个数排除
        for(int i=0;i<=10;i++) {
            dp[a][b][c][k]+=((long long)tt[i]*dfs(i,b,c,k+1)%mod);if(dp[a][b][c][k]>=mod) dp[a][b][c][k]-=mod;
            dp[a][b][c][k]+=((long long)tt[i]*dfs(a,i,c,k+1)%mod);if(dp[a][b][c][k]>=mod) dp[a][b][c][k]-=mod;
            dp[a][b][c][k]+=((long long)tt[i]*dfs(a,b,i,k+1)%mod);if(dp[a][b][c][k]>=mod) dp[a][b][c][k]-=mod;
        }
        return dp[a][b][c][k];
    }
    
    int main() {
        int t;
        int kase=0;
        int x[55];
        char s[55];
        scanf("%d", &t);
        p10[0] = 1;
        for(int i=1;i<=55;i++)
            p10[i]=p10[i-1]*10%mod;
        while(t--) {
            scanf("%d",&K);
            scanf("%s",s);
            L=strlen(s);
            memset(dp,-1,sizeof(dp));
      //  cout <<f[5][5][5][5]<<endl;
            memset(cnt,0,sizeof(cnt));
            for(int i=0;i<L;i++) {
                x[i]=(s[i]=='*'?10:s[i]-'0');
                ++cnt[x[i]];
            }
            int ans=0;
            for(int i=0;i<L;i++) {
                for(int j=i+1;j<L;j++) {
                    for(int k=j+1;k<L;k++) {
                        ans+=p10[j-i-1]*p10[L-k-1]%mod*dfs(x[i],x[j],x[k],0)%mod;
                        if(ans>mod) ans-=mod;
                    }
                }
            }
            printf("Case #%d: %d\n",++kase,ans);
        }
        return 0;
    }
    


    展开全文
  • 一个常见的整除问题

    2021-03-01 16:23:33
    一个常见的整除问题 ​ 给定非常大的,位数n≤105n\le 10^5n≤105,且任何一位上无000,该任意位可相互交换。判断该是否能整除某个...所以只需判断三位以内的是否成立即可。 同理:x=25,102(mod25)=0x=25,10

    一个常见的整除问题

    ​ 给定非常大的数,位数n105n\le 10^5,且任何一位上无00,该数的任意位可相互交换。判断该数是否能整除某个数xx


    该问题的思路

    ​ 找到一个10k(modx)=010^k\pmod x=0

    这样我们只需找kk位以内的数。

    ep:x=8ep: x=8,注意到103(mod8)=010^3\pmod 8=0

    所以只需判断三位以内的数是否成立即可。

    同理:x=25,102(mod25)=0x=25,10^2\pmod {25}=0

    所以只需判断两位以内的数是否成立即可。


    思考

    xx不是某个10k10^k的因数呢?

    能否有较优的解决方案呢?

    我不会

    如果大家有好的解决办法,请告诉我。

    展开全文
  • 无向交换单元:若将一个交换单元的相同编号的入线和出线连在一起,每一条都既可入 也可出,即同时具有发送和接收功能。 10.交摸单元的性能指标有哪出?各自含义是什么? 各 1)容量:交换单元所有入线可以同时送入的总的...
  • 道典型c语言题

    2017-10-18 18:50:10
    1、给你任意三个整形数据,找出其中最大一个整形。 2、求1+2!+3!+...+20!的和。 3、编程完成数据加密。数据是五的整数,加密规则为: 每数字都加上6,然后用和除以8的余数代替该数字...
  • 3简单的c程序

    2017-10-18 22:48:04
    1、给你任意三个整形数据,找出其中最大一个整形。 2、求1+2!+3!+...+20!的和。 3、编程完成数据加密。数据是五的整数,加密规则为:每数字都加上6,然后用和除以8的余数代替该数字,再将第一和第五位交换...
  • linux学习第十

    2018-11-24 20:23:27
    2.某个公司采用公用电话传递数据信息,数据是小于8的整数,为了确保安全, ... 请任意给定一个小于8的整数, 然后,把加密后的结果在控制台打印出来。     题目要求:  A:数据是小于8的整数  ...
  • CUGB的场周赛

    2011-03-20 23:02:00
    说说我周赛做的两道题吧: Open the Lock 一个四位数变成另一个四位数,要求的操作有种: 1. 对任意加1,如果大于9,回到1 2. 对任意减1,如果小于1,回到9 3. 交换相邻两的数字,最左边和最右边不算...
  • 按一次该键则显示下一个时间值,个值循环显示,当按下“确认”键时,就选定当前显示值供系统使用,按“复位”键则清除该次时间的设定。 “会议电话”: 该键为召开电话会议的按键。电话会议设置用户1为主叫方,...
  • 携程Java后端()

    2021-04-25 12:32:49
    交换两个变量的值,不借助第个变量 栈实现 int exchange(int x,int y) ...这就意味着任意一个数任意一个给定的值连续异或两次,值不变。 int a=10,b=12; //a=1010^b=1100; a=a^b; //a=0110^b=1100; b=a...
  • ... 欢迎交换友链 :-) 1023 组个最小数 (20分) ...例如:给定两个 0,两个 1,个 5,一个 8,我们得到的最小的就是 10015558。 现给定数字,请编写程序输出能够组成的最小的。 输入格式: 输...
  • 2.选任意一个数使其加1,超过9取模10; 3.选任意一个数使其乘2,超过9取模10; 其中操作2最多用3次,操作2最多用2次。 解题思路 把12345丢到预处理里面去,然后把预处理出来的结果保存。 广搜每次出来的都是最优先的...
  • 特殊的排序

    千次阅读 2020-11-25 08:40:00
    现在给你一个长度为n的序列a,你可以根据需要执行下面的操作任意次。 对于任意两个数字ai和aj,如果ai​+aj​的和是奇数,则可以将这两个数字进行交换。 现在,我们想让排出的序列字典序最小,那么得到序列是? P.S....
  • C语言练习题(1)

    2017-10-17 20:14:49
    第一题:给你任意三个整形数据,找出其中最大的一个整形分析:利用三目运算符。 第二题:求1+2!+3!+…+20!的和分析:应使用循环嵌套,注意定义数字的类型 第题:编程完成数据加密。数据是五的整数,加密...
  • 你必须知道的495C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    3.15 我要检查一个数是不是在另外两个之间,为什么if(abc)不行? 3.16 为什么如下的代码不对?inta=1000,b=1000;longintc=a*b; 3.17 为什么下面的代码总是给出0?doubledegC,degF;degC=5.0/9*(degF-32); ...
  • 2.亦或xor是一个很关键的操作,0与任意一个数做偶数次xor结果是0,奇数次结果是1。 3.操作是满足交换律的,因为每一个bit是满足的。 4.如何得到一个int的最右侧的第一个1?方法是与其相反做&。因为相反是...
  • Problem Description给一个长度为n(n ^5)的“01”串,你可以任意交换一个为0的和一个为1的,若这两相邻,花费为X,否则花费为Y。求通过若干次交换后将串中的“1”全部变换到“0”前面的最小花费。 Input第...
  • 一面 自我介绍 final修饰符 coding: 5^1, 5^2, 5^1+5^2,第n个是多少? 类似Fib数列 coding: 一个字符串大...所以如果我们能从这个任意取出三位,作为最后三位,其值能被8整除,就输出YES,否则NO。 ...
  • 给一个长度为n(n ^5)的“01”串,你可以任意交换一个为0的和一个为1的,若这两相邻,花费为X,否则花费为Y。求通过若干次交换后将串中的“1”全部变换到“0”前面的最小花费。 Input 第一行一个整数T(1 )...
  • H - 最小花费 FZU - 2197

    2017-08-11 14:38:09
    给一个长度为n(n ^5)的“01”串,你可以任意交换一个为0的和一个为1的,若这两相邻,花费为X,否则花费为Y。求通过若干次交换后将串中的“1”全部变换到“0”前面的最小花费。 Input 第一行一个整数T(1...
  • zoj2196

    2017-08-11 14:56:19
    给一个长度为n(n ^5)的“01”串,你可以任意交换一个为0的和一个为1的,若这两相邻,花费为X,否则花费为Y。求通过若干次交换后将串中的“1”全部变换到“0”前面的最小花费。 Input 第一行一个整数T(1 ...
  • Java开发技术大全(500源代码).

    热门讨论 2012-12-02 19:55:48
    HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 ...
  • 题意:给了一个每一由1-9数字组成的字符串,有种操作,第一种操作可以无限次,交换任意相邻两。第二种操作最多操作次,可以把任何一加一,超过9对10取模。第种操作最多操作两次,可以把任意乘以2,...
  • 《你必须知道的495C语言问题》

    热门讨论 2010-03-20 16:41:18
    3.15 我要检查一个数是不是在另外两个之间,为什么if(a b c)不行? 40 3.16 为什么如下的代码不对?int a=1000, b=1000; long int c=a * b; 40 3.17 为什么下面的代码总是给出0?double degC, degF; degC= ...
  • 异或总结

    2020-08-12 15:02:44
    利用这点性质,对一个数组仅有一个数字出现一次,其他数字都出现且仅出现偶数次的情况下,不使用hash表这些额外的空间处理,求出这个只出现一次的数字。 也可以用在不引入第方,交换两个变量的值。 a=a^b b=a^b a=...
  • 3.15 我要检查一个数是不是在另外两个之间,为什么if(a b c)不行? 40 3.16 为什么如下的代码不对?int a=1000, b=1000; long int c=a * b; 40 3.17 为什么下面的代码总是给出0?double degC, degF; degC= ...
  • C#冒泡排序算法

    2019-07-01 15:23:16
    第一趟:拿第一个数和第二个比较,如果第一个比第二个大就按从小到大排列(交换); 然后第二个和第比较,从小到大排列; 以此类推,直到所有中的最大值排列在最后一个。 第二趟:排除掉已经放到最后的...

空空如也

空空如也

1 2 3 4 5 6
收藏数 108
精华内容 43
关键字:

任意交换一个三位数