• 洛谷-求同构数的个数-NOIP2013提高组复赛


    题目描述 Description

    所谓同构数是指这样的数,即它出现在它的平方数的右端。例如,5的平方是25 (即5×5=25),5是25右端的数,那么5就是同构数。又如,25的平方是625(即25×25=625),同理25也是同构数。找出通过键盘输入的两个正整数N和M之间同构数的个数。
     输入输出格式 Input/output
    输入格式:
    一行,任意给定的两个正整数N,M
    输出格式:
    一个正整数,表示[N,M]之间同构数的个数。
     输入输出样例 Sample input/output
    样例测试点#1

    输入样例:

    4 10

    输出样例

    2

    说明 description

    对于100%的数据:(0<N<M≤10000)
     
    思路:这题较为简单,循环区间中的每个数,平方后保留后几位(根据数的位数决定),判断相同计数器++即可;
     
    代码如下:
     1 #include <stdio.h>
     2 int fun(int a)//传过来一个数,传出10的位数次方  
     3 {
     4     int i,k=1;
     5     int ans=0;
     6     while(a>0)//统计位数 
     7     {
     8         ans++;
     9         a=a/10;
    10     }    
    11     for(i=0;i<ans;i++)//10的位数次方 
    12     {
    13         k=k*10;
    14     }
    15     return k;
    16 }
    17 int main()
    18 {
    19     int ans=0,i;
    20     int a,b;
    21     int p;
    22     scanf("%d%d",&a,&b);
    23     for(i=a;i<=b;i++)
    24     {
    25         p=i*i;
    26         if(i==p%fun(i)) ans++;
    27     }
    28     printf("%d
    ",ans);
    29     return 0;
    30 }
  • 相关阅读:
    Java课堂测试——一维数组
    05构建之法阅读笔记之二
    第八周个人总结
    团队项目第一篇——NABCD
    第七周学习进度报告
    地铁合作的第二周
    04构建之法阅读笔记之一
    第六周学习进度报告
    03人月神话阅读笔记之三
    地铁合作的第一周
  • 原文地址:https://www.cnblogs.com/geek-007/p/5171112.html
Copyright © 2020-2023  润新知