精华内容
下载资源
问答
  • 、简单版(只实现这两需求) ...#len函数可以查看字符串的长度,也就是能得出这是一个几位数,用str转换成字符串之后才能跟前后文字拼接 print('我把它倒过来给你看看:',''.join(list(reversed(nu...

    一、简单版(只实现这两个需求)

    num=input('你好呀,请输入一个不多于五位的正整数>>>')
    print('嗯,我看过了,这是一个'+str(len(num))+'位数。')
    #len函数可以查看字符串的长度,也就是能得出这是一个几位数,用str转换成字符串之后才能跟前后文字拼接
    print('我把它倒过来给你看看:',''.join(list(reversed(num))))
    #reversed函数把原数字反转过来,返回的结果是迭代器
    #用list函数把迭代器变成列表
    #用join方法连接list里的所有元素,得到列表,用于连接的字符是什么也没有,所以就会无缝拼接

    但是有一些数字翻转过来跟原来是一样的,比如8,88,858,8558,85658,所以下面的升级版会把这些无聊的翻转考虑进去,让程序更智能一点,更,em,可爱一点……

    二、升级版

    num=input('你好呀!请输入一个不多于五位的正整数:')
    print('嗯,我看过了。它是一个'+str(len(num))+'位数。')
    if (len(num)==1) or (len(num)<=3 and num[0]==num[-1]) or (num[0]==num[-1] and num[1]==num[-2]):
    #这里提出了三种懒得反转的情况,分别是只有一位数,比如8
    #两位或者三位数,第一个数字和最后一个数字相同,比如88,858
    #四位或者五位数,第一个数字和最后一个数字相同,第二个数字和倒数第二个数字相同,比如8558,85658
    
        print('我本来想把它倒过来给你看看,但是它倒着写不好玩儿,算了吧~')
    else:
        print('我把它倒过来了,现在它变成了',''.join(list(reversed(num)))) 

    三、自己造轮子(关注算法的请看)

    num=input('请输入一个不超过5位的正整数>>>')
    num=int(num)
    #变量res用于存储逆转之后的数字
    res=0
    #变量count用于存储数字位数
    count=0
    #下面是这个算法的核心
    while num !=0:
        #用取余数的方式取出当前的个位数字,
        # 把结果中原来已有的部分乘以10,加上刚取出来的个位数字。
        #这就相当于把原来的部分往前挪了一下,给新来的个位数腾出来一个地方
        res=res*10+num%10
        #用除以10并向下取整的方式把已经处理过的数位去掉
        num=int(num/10)8
        #每处理一次,就给计数器count加1,用这样的方式计算num是几位数
        count+=1
    print('这是一个%s位数,它的逆序数字是%s'%(count,res))

    为了帮助大家更好地理解上述算法的核心,请看下面的图解:

     

     

    如果这篇博文帮到了你,就请给我点个吧(#^.^#)

    有疑问也欢迎留言~博主可nice啦,在线秒回ヾ(◍°∇°◍)ノ゙

    展开全文
  • C语言:有N个数从小到大的顺序存放在个数组中,输入个数,要求用折半查找法找出该数数组中第几个数。如果不在数组中,打印“not found”。
    /*有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数。如果不在数组中,打印“not found”。*/
    
    #include<stdio.h>
    #define N 10
    int main()
    {
    	int a[N];
    	int i,num,mid,low,high,local;
    	int flag=1;
    	printf("请输入%d个整数\n",N);
    	for(i=0;i<N;i++)
    		scanf("%d",&a[i]);
    	printf("请输入要查找的数:\n");
    	scanf("%d",&num);
    	while(flag==1)
    	{
    		low=0;
    		high=N-1;
    		if(num<a[0] || num>a[N-1])
    		{
    			printf("not found!\n");
    			break;
    		}
    		while(low<=high)
    		{
    			mid=(low+high)/2;
    			if(num==a[mid])
    			{
    				local=mid+1;
    				printf("%d是数组中第%d个数。\n",num,local);
    				flag=0;
    				break;
    			}
    			else
    			{
    				if(num<a[mid])
    					high=mid-1;
    				else
    					low=mid+1;
    			}
    		}
    		if(low>high)
    		{ 
    			flag=0;
    			printf("not found!\n"); 
    		} 
    	}
    } 
    
    
    展开全文
  • 一个不多于5位的正整数,要求:、求它是几位数,二、逆序打印出各位数字。 输入代码如下: import java.util.Scanner; public class Demo12 { public static void main(String[] args) { Scanner input=new ...

    题目:
    给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

    输入代码如下:

    import java.util.Scanner;
    public class Demo12 {
        public static void main(String[] args) {
            Scanner input=new Scanner(System.in);
            System.out.println("请输入一个不多于5位数的正整数:");
            int n=input.nextInt();
            int a=1;
            int i=0;
            while (n<0||n>99999){
                System.out.println("输入有误,请重新输入");
                n=input.nextInt();
            }System.out.println("按逆序输出各位数字顺序是:");
            while (n>=1) {
                a=n%10;
                n=n/10;
                i++;
                System.out.print(a+" ");
            }
            System.out.println("这是一个"+i+"位数");
        }
    }
    

    在这里插入图片描述

    展开全文
  • 题目:把个数分解成任意几个数之和,把个数的所有和式分解的结果全部输出出来, 例如:4的结果有,(1+3),(2+2),(1+1+2),(1+1+1+1) 由例子可见,该程序去重的,应为1+1+2也可以写成1+2+1 ,所以,写方法必须...
    题目:把一个数分解成任意几个数之和,把一个数的所有和式分解的结果全部输出出来,
    例如:4的结果有,(1+3),(2+2),(1+1+2),(1+1+1+1)

    由例子可见,该程序是去重的,应为1+1+2也可以写成1+2+1 ,所以,写方法必须要去重

    package org.jeecg.modules.applet.controller;
    
    import java.util.*;
    
    /**
     * 把一个数分解成任意几个数之和,把一个数的所有和式分解的结果全部输出出来
     * 例如:4的结果有,(1+3),(2+2),(1+1+2),(1+1+1+1)
     */
    public class Composition extends ArrayList<Integer> {
        /**
         *  重写equals方法方便去重,排除掉重复的数据
         * @param other
         * @return
         */
        @Override
        public boolean equals(Object other){
            Composition comp = (Composition)other;
            Collections.sort(this);
            Collections.sort(comp);
            if(this.isEmpty() || comp.isEmpty() || this.size() != comp.size())
                return false;
            for(int i=0; i<this.size(); i++)
                if(this.get(i) != comp.get(i))
                    return false;
            return true;
        }
        @Override
        public int hashCode() {
            return 0;
        }
    }
    class main {
        public static void main(String[] args) {
            int n=1;
            Scanner sc=new Scanner(System.in); //在控制台手动输入值  按enter键  便可得到结果
            n=sc.nextInt();
            System.out.println(toStr(calc(n)));
        }
        public static Set<Composition> calc(int n) {
            Set<Composition> devideSet = new HashSet<Composition>();
            Composition Composition = new Composition();
            switch (n) {//如果是1直接返回1
                case 1:
                    Composition.add(1);
                    devideSet.add(Composition);
                    return devideSet;
                case 2://如果是2返回1+1
                    Composition.add(1);
                    Composition.add(1);
                    devideSet.add(Composition);
                    return devideSet;
                default:
                    for (int i = 1; i <= n / 2; i++) {
                        Composition = new Composition();
                        Composition.add(i);
                        Composition.add(n - i);
                        devideSet.add(Composition);
                        if (i <= n - i) {
                            Set<Composition> partial_pos = calc(n - i);//递归调用
                            for (Composition pos : partial_pos) { //当n==2时会走这个方法
                                pos.add(i);
                                devideSet.add(pos);
                            }
                        }
                    }
                    return devideSet;
            }
        }
        public static String toStr(Set<Composition> devideSet) {
            String str = "";
            for (Composition de : devideSet)
                str += toStr(de);
            return str;
        }
        public static String toStr(Composition Composition) {//将数字拼接成表达式
            String str = Composition.get(0) + "";
            for (int i = 1; i < Composition.size(); i++)
                str += (" + " + Composition.get(i));
            str += "\n";
            return str;
        }
    }

     

    展开全文
  • package test1;...*要求:、求它是几位数,二、逆序打印出各位数字。 * */ public class Test4 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); long x=sc.n...
  • /** * 给一个不多于5位的正整数,要求:、求它是几位数,二、逆序打印出各位数字 * @author Dreamweaver * */public class Demo24 { public static void main(String[] args) { Scanner sc = new Scanner...
  • 一个不多于5位的正整数,要求:、求它是几位数,二、逆序打印出各位数字。 思路介绍 打印出几位数(利用枚举取一个边界函数) 逆序(用%取余函数) 复习:可以使用//求取两数相除的商、%求取两数相除的余数。...
  • 位开始
  • #include int main() { int i, j = 0, k, array[5], a, num, tmp, sum = 0; printf("Please enter a small 5 digit integer:"); while(1) { if((scanf("%d",&num) != 1) || getchar() !...printf(
  • /** * */ ... import java.util.Scanner; ...给一个不多于5位的正整数,要求:、求它是几位数,二、逆序打印出各位数字。 * @author HadwinLing * * @date 2020年1月14日上午8:26:14 * ...
  • 一个不多于5位的正整数,要求:1)求它是几位数,2)逆序打印出各位数字。关于这问题比较简洁的写法 代码如下: package com.oracle.lianxi4; import java.util.Scanner; public class Test6 { public static ...
  • 、求它是几位数; 二、逆序打印出各位数字。 〉 创建时间:2019.6.10 /**************************** * 文件名:[作业] * 作者:〈漆黑〉 * 描述:〈 由用户输入一个不多于5位的正整数。 要求: 、求它...
  • 一个循环、一个变量打印乘法口诀

    千次阅读 2014-05-07 11:55:41
    天面试的时候遇到了一个问题,当时也没啥思路,而且时间比较紧,所以就空下了。回来后一直耿耿于怀,于是研究了一下。 问题这样的:只用一个循环和一个变量打印出乘法口诀。 想了段时间感觉还是没...
  • /*输入一个不多于5位的正整数,要求1:求出它是几位数; 要求2:分别打印出每位数; 要求3:按逆序打印出各位数字;*/ #include <stdio.h> #include <math.h> int num_count(int num); void showdata...
  • 例题:给一个不多于5位的正整数,要求:、求它是几位数,二、逆序打印出各位数字。 代码如下: /*程序分析:先分解出每位数,再逐步分解出余下的数*/ #include "stdio.h" main( ) { long a,b,c,d,e,x; printf...
  • 输入一个不多于五位的正整数,判断它是几位数,分别打印出各位数字,并按逆序打印各位数字。#include using namespace std;int main() { void function(int a); int input,flag; coutcin>>input; if(input>=0 && ...
  • #include <... printf("请输入一个不多于5位的整数:"); scanf("%d",&a); b = a % 10; a = a / 10; printf("%d\n",b); if(a != 0) { c = a % 10; a = a / 10; printf("%d...
  • `python w=input(‘输入一个不超过5位的整数’) list=(w)m=len(w) print(‘这’,m,‘位数’) n=list[::-1] for i in n: print(i) python入门级,结合这代码可以了解一下列表的切片。 ...
  • 习题 5.8 有15个数按由大到小的顺序存放在个数组中,输入个数,要求用折半查找法找出该数数组中第几个元素的值。如果该数不在数组中,则打印出“无此数”。 代码块: #include &lt;iostream&gt; ...
  • /* 2017年3月8日9:41:34 java基础50道经典练习题 例24 Athor: ZJY ... 、求它是几位数,二、逆序打印出各位数字。 */ public class ProgramNo24_1 { public static void main(String[] args) { int n
  • 题目:给一个不多于5位的正整数,要求:、求它是几位数,二、逆序打印出各位数字。  看到网上给出的程序,个人觉得还可以再优化一下。 网上程序为: import java.util.Scanner; public class Ex24 { public ...
  • 一个不多于5位的正整数,要求:1.求它是几位数;2.逆序打印出各位数字;3.正序打印出各位数字。 前提说明: 从题中我们可以看出题目中对整数的位数已经限制为5位,我们在这里先不管这限制,无论输入什么数字都...
  • 慢慢扩展了,下面图片 下面的图片就是你要打印的纸张扫描图片 这添加上的文字,红色代表当前编辑的文字区域文字方向设置 这分栏,就是行文字分成块显示,加大行间距,下面效果启用分栏:值16 ,间

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,522
精华内容 12,608
关键字:

一打是几个