精华内容
下载资源
问答
  • 题目描述:编写程序,将某一个输入的位数不确定的正整数按照标准的三位分节格式输出,例如,当用户输入82668634时,程序应该输出82,668,634。编程,一个良好的思维极其重要。首先分析输入:输入是一个位数(int型...
    题目描述:

    编写程序,将某一个输入的位数不确定的正整数按照标准的三位分节格式输出,例如,当用户输入82668634时,程序应该输出82,668,634。

    编程,一个良好的思维极其重要。

    首先分析输入:输入是一个多位数(int型)

    输出分析:82,668,634为一个字符串

    思考:如何处理这个多位数?怎么样处理才能使用里面的数字。这时候对于十进制的多位数往往是采用除以10取余数,一位一位的提取出来。

    例如:123

    123/10= 12*****3

    12/10 = 1******2

    1/10  = 0******1

    这样就能把1,2,3以倒叙的方式提取出来,再使用cstring库中的strrev使字符串颠倒过来,这样就变成了1 2 3以单个元素的形式存储在内存单元里。

    这里我们注意到,逗号“,”的添加方式是从最低位每逢三添加一个,这样,我们只需要利用一个计数器,提取一位,+1,当加三的时候,额外添加一个逗号“,”,最后翻转一下即可。

    初步代码如下:

    #include <iostream>

    #include <cstring>

    using namespace std;

    int main()

    {

        cout << "请输入一个整数:" << endl;

        int n;

        cin >> n;

        int count = 0;//计数器,初始化为0

        char a[50];//用数组存储处理过后的数据

        char *p = a;//使用指向数组a的指针

        while(n != 0)

        {

            *p = n % 10 + '0';//注意这里   +‘0’ 是必须的,如果不加‘0’的话,指针的值不会转换成数值1,2,3??????

            n = n / 10;//会自动下取整

            count ++;//取出一位最高位的数后,计数器加一(也相当于现在p中数据的位数)

            p++;//指针p后移一位,以便于写入下一位数

            if(count % 3 == 0 && n!= 0)//注意这里必须添加这个条件,因为如果整数位数恰好是3的倍数的话,会导致逗号多添加                                                       //一个,比如123,当count == 3时,这时候p中会使3,2,1,会在最末尾添加多余的逗                                                            //号“,”,所以,必须添加这个条件。

            {p = ',';

            p++;//指针p后移一位,以便于写入下一位数

            }

        }

        strrev(a);

        cout << a <<endl;

        return 0;

    }

    展开全文
  • 对于一个三位数,可通过用这个数去除以10取余数得到个位数 由于显示跟十位和百位有关,我们还需要求出一个三位数的十位和百位 求三位数的百位直接拿这个数除以100即可 对于三位数获得十位数的方法,

    题目描述

    输入一个三位正整数,根据个位上的数输出格式如下:

    输出格式:

    十位 百位 个位(个位上的数<2)
    百位 个位 十位(2<=个位上的数<5)
    个位 十位 百位 (5<=个位上的数)

    解题思路

    对于这样一个问题,我们应

    • 首先得到个位的数,然后进行判断
    • 对于一个三位数,可通过用这个数去除以10取余数得到个位数

    由于显示跟十位和百位有关,我们还需要求出一个三位数的十位和百位

    • 求三位数的百位直接拿这个数除以100即可
    • 对于三位数获得十位数的方法,可以利用这个数除以10的结果对10取余来获得

    代码实现

    #include <iostream>
    using namespace std;
    int main(){
        int n,g,s,b;//n:三位数;g:个位;s:十位;b:百位
        cout<<"请输入三位数:"<<endl;
        cin>>n;//输入三位数
        g=n%10;
        b=n/100;
        s=(n/10)%10;
        cout<<"结果为:"<<endl;
        if(g<2){
            cout<<s<<" "<<b<<" "<<g;
        }else if(g<5&&g>=2){
            cout<<b<<" "<<g<<" "<<s;
        }else{
            cout<<g<<" "<<s<<" "<<b;
        }
    }
    

    运行结果:

    请输入三位数:
    210
    结果为:
    1 2 0
    
    请输入三位数:
    134
    结果为:
    1 4 3
    
    请输入三位数:
    258
    结果为:
    8 5 2
    
    展开全文
  • 求A^B最后三位数表示的整数

    千次阅读 2015-03-26 21:19:02
    求A^B最后三位数表示整数。 说明:A^B含义是“AB次方” Input 输入数据包含多测试实例,每实例占行,由两个正整数A和B组成(1 Output 对于测试实例,请输出A^B最后三位表示整数,每输出...
    求A^B的最后三位数表示的整数。

    说明:A^B的含义是“A的B次方”

    Input
    输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1<=A,B<=10000),如果A=0, B=0,则表示输入数据的结束,不做处理。

    Output
    对于每个测试实例,请输出A^B的最后三位表示的整数,每个输出占一行。

    Sample Input
    2 3 12 6 6789 10000 0 0


    Sample Output

    8 984 1
    <span style="font-size:18px;">#include<stdio.h>  
    #include<stdlib.h>  
    int main()
    {  
        int a,b,i,p;  
        while(scanf("%d %d",&a,&b)!=EOF)
       {  
            if(a==0&&b==0)
    	{  
                  break;           
            }               
            p=a%1000;  
            a=1;  
            for(i=1;i<=b;i++)
            {  
                 a=a%1000;  
                 a=a*p;              
             }  
             printf("%d\n",a%1000);  
        } 
        return 0; 
    } </span>


    展开全文
  • (1)对于一个n位正整数,要求出他是几位数,只需定义一个变量count存储这个数的位数,初始化count为0,利用while循环对整数n整除10,整除一次count加一,当n整除10为0时循环结束,函数返回值为整数位数count;...

    给一个n位的正整数,要求:(1)求出他是几位数; (2)分别输出每一位数字; (3)按逆序输出给位数字,例如原数为321,应输出123。

    (1)对于一个n位正整数,要求出他是几位数,只需定义一个变量count存储这个数的位数,初始化count为0,利用while循环对整数n整除10,整除一次count加一,当n整除10为0时循环结束,函数返回值为整数位数count;
    以上针对的是当n为正整数时,当n为一个整数时,分三种情况:整数、负数和0。当n为负数时,只需增加一个if语句进行判断,使n转化为正整数,然后进行正整数求位数;n为0时直接返回1即可;
    代码实现如下:

    int  Show(int n)
    {
     int count=0; //存储n的位数 
     if(n<0) n=-n; //负数转换为正数再求位数 
     if(n==0) return 1; //n为0是直接返回位数为1 
     while(n!=0) //对正整数求位数 
     {
      n/=10;
      count++;
     }
     return count;
    }

    (2)要输出n的每一位数字,需要引用前面的求位数函数,判断他是几位数,方便判断从哪位开始输出,然后依次求出他的每一位数字并输出。先定义变量i存放n的位数,再定义一个变量a存放10^i-1,用while循环:1、对n对a整除,求出每个位数的数字并输出;2、n对a取余剔除最高位数字;3、a/=10为下趟循环做准备。
    以上是针对当a为正整数时,当n为0或负数时方法和上面的方法类似,在此就不再赘述。
    代码实现如下:

    void Show1(int n)
    {
     int i=Show(n); //存放n的位数 
     int a=pow(10,i-1); //存放最高位的10的整数次幂求每位数字 
     if(n==0) //n为0时输出0 
     {
      printf("0\n");
     }
     if(n<0) //n为负数时先输出负号后再输出每位数字 
     {
      printf("-");
      n=-n;
     }
     while(n!=0) //输出每位数字 
     {
      printf("%d ",n/a);
      n%=a;
      a/=10;
     }
    } 
    

    注:不用a存放pow(10,i-1)而直接使用【n%=pow(10,i-1);i–;】时,会发生数据类型不匹配的错误。

    (3)按逆序输出给位数字,例如原数为321,应输出123。输出n的每位数字只需利用while循环对n%10并输出,然后n/=10为下趟循环准备,n=0时循环结束。
    当n为0或负数时和以上方法类似。
    代码实现如下:`

    void Show2(int n)
    {
     if(n==0) //n为0时输出0 
     {
      printf("0\n");
     }
     if(n<0) //n为负数时先输出负号后再输出每位数字 
     {
      printf("-");
      n=-n;
     }
     while(n!=0) //输出每位数字
     {
      printf("%d ",n%10);
      n/=10;
     }
    } 

    主函数:

    int main()
    {
     printf("%d\n",Show(123456));	//统计位数
     Show1(654123);	//顺序输出每位数字
     Show2(654321);	//逆序输出每位数字
    }
    展开全文
  • 输入数据包含多测试实例,每实例占行,...对于测试实例,请输出A^B最后三位表示的整数,每输出占行。 #include<stdio.h> int main() { int a,n,m; while(scanf("%d%d",&n,&m)!...
  • 对于测试实例,请输出A^B最后三位表示的整数,每输出占行。 #include using namespace std; int main() { int a,b,x,i; while(cin>>a>>b,a!=0||b!=0) { x=1; for(i=1;i  x=(a*x)%1000
  • 设x为一个十进制正整数,定义s(x)为x每一数字之和,如s(123) = 1+2+3 = 6 对于如下方程:x = b*(s(x)^a)+c 给出a,b,c值,要求找出[1,999999999]内所有符合条件x,并从小到大输出。 输入数据 正整数...
  • 输入:输入任意的一个三位正整数。 输出:依次输出个位、十位、百位上的数字。以空格间隔,但最后一个数据的后面没有空格,直接换行。 样例输入:367 样例输出 :7 6 3 分析 三位数的数位分离,首先要明白个位、十位...
  • 数整数的题解

    2020-04-12 11:09:30
    对于一个五位数a1a2a3a4a5,可将其拆分为个子: sub1=a1a2a3 sub2=a2a3a4 sub3=a3a4a5 例如,五位数20207可以拆分成 sub1=202 sub2=020(=20) sub3=207 现在给定一个正整数K,要求你编程求出10000到30000之间...
  • 刘峰六: (1) 请小心一个问题,对于8禁止,相当于3一段,32是不能被整除,也就会导致结果不正确 (2) 对于1111111000011这样数字,如果数字式正数,如果前面补足N个0,那么其实数字大小是不变,所以...
  • P1151 子数整数

    2020-02-13 13:14:31
    对于一个五位数可将其拆分为个子: 例如,五位数2020720207可以拆分成 202 020(=20) 207 现在给定一个正整数KK,要求你编程求出10000到30000之间所有满足下述条件五位数,条件是这些五位数的三个子都可被KK...
  • 1.5 对称三位数素数

    2018-11-12 23:03:58
     判断一个数是否为对称三位数素数。所谓“对称”是指一个数,倒过来还是该数。例如,375 不是对称数,因为倒过来变成了 573。输入描述:输入数据含有不多于 50 个的正整数(0&lt;n&lt; )。输出描述:对于...
  • 洛谷p1151子数整数

    2020-11-03 00:22:07
    对于一个五位数a1a2a3a4a5,可将其拆分为个子: sub1=a1a2a3 sub2=a2a3a4 sub3=a3a4a5 例如,五位数20207可以拆分成 sub1=202 sub2=020(=20) sub3=207 现在给定一个正整数K,要求你编程求出10000到30000之间所有...
  • oj 对称三位数素数

    2017-05-21 18:22:32
    判断一个数是否为对称三位数素数。所谓“对称”是指一个数,倒过来还是该数。例如,375不是对称数,因为倒过来变成了573。 Input 输入数据含有不多于50个的正整数(0)。 Output 对于每个n,如果该数是...
  • 洛谷P1151 子数整数

    2021-02-09 09:45:26
    对于一个五位数a1​a2​a3​a4​a5​,可将其拆分为个子: sub1​=a1​a2​a3​ sub2​=a2​a3​a4​ sub3​=a3​a4​a5​ 例如,五位数20207可以拆分成 sub1​=202 sub2​=020(=20) sub3​=207 现在给定一个...
  • 判断一个数是否为对称三位数素数。所谓“对称”是指一个数,倒过来还是该数。例如,375不是对称数,因为倒过来变成了573。 输入 输入数据含有不多于50个的正整数(0)。 输出 对于每个n,如果该数是对称三位数素数...
  • 对于一个五位数a1a2a3a4a5,可将其拆分为个子: sub1=a1a2a3 sub2=a2a3a4 sub3=a3a4a5 例如,五位数20207可以拆分成 sub1=202 sub2=020(=20) sub3=207 现在给定一个正整数K,要求你编程求出10000到...
  • 判断一个数是否为对称三位数素数。 所谓“对称”是指一个数,倒过来还是该数。例如,375不是对称数,因为倒过来变成了573。 Time Limit:1000MS Memory Limit:32768K Input: 输入数据含有不多于50个的正整数(0 ...
  • 每行仅有一个正整数正整数的大小一定小于等于所有组合情况个数大小)。每组测试数据与其后一组测试数据之间没有任何空行,第一组测试数据前面以及最后一组测试数据后面也都没有任何空行。 ...
  • 求A^B最后三位数表示整数。 说明:A^B含义是“AB次方” Input 输入数据包含多测试实例,每实例占行,由两个正整数A和B组成(1<=A,B<=10000),如果A=0, B=0,则表示输入数据结束,不做处理...
  • 现在给定一个正整数 K,要求你编程求出 10000(包括 10000)到 30000(包括 30000)之间所有满足下述条件五位数,条件是这些五位数的三个子 sub1,sub2,sub3 都可被 K 整除。 Sample Input15 Sample Output
  • L1-025 正整数A+B

    2020-10-22 18:08:20
    1.定义一个把字符串转换为数字函数,利用这个函数可以剔除 那些除纯数字外任何输入,并且可以找出符合区间的数 2.对于两个字符串输入要注意,我也是参考另外一博主来 写 3.输出:分种情况输出即可 #...
  • 题目描述对于一个五位数a1a2a3a4a5,可将其拆分为个子:sub1=a1a2a3sub2=a2a3a4sub3=a3a4a5例如,五位数20207可以拆分成sub1=202sub2=020(=20)sub3=207现在给定一个正整数K,要求你编程求出10000到30000之间...
  • Description对于一个五位数 a1a2a3a4a5,可将其拆分为个子: sub1=a1a2a3 sub2=a2a3a4 sub3=a3a4a5 例如,五位数 20207 可以拆分成 sub1=202 sub2=020(=20) sub3=207 现在给定一个正整数 K,要求你编程求出 ...
  • 求A^B最后三位数表示整数。 说明:A^B含义是“AB次方”   Input 输入数据包含多测试实例,每实例占行,由两个正整数A和B组成(1   Output 对于测试实例,请输出A^B最后三位表示...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 616
精华内容 246
关键字:

对于一个三位数的正整数