zoukankan      html  css  js  c++  java
  • AOJ 760.尾数相等的数

    尾数相等的数
    Time Limit: 1000 ms   Case Time Limit: 1000 ms   Memory Limit: 64 MB
    Total Submission: 45   Submission Accepted: 8
     
    Description
    从键盘输入一个自然数K(1 < K < 99999999),一定存在自然数M和N(M < N),使得K的M次方和K的N次方均大于或等于1000,且它们的未尾三位数相等,则称M和N是一对“K尾相等数”。请编程序,输出K尾相等数中M+N最小值。
    Input
    每一行包含一组测试数据,每组测试数据包含一个位长小于10的正整数K.
    Output
    对每组测试数据输出一行。每行包含2个正整数M和N,两数之间用一个空格分隔。
    Sample Input
    Original Transformed
    20
    125
    
    Sample Output
    Original Transformed
    3 4
    2 4

    模拟操作即可,关键在于由于数据较大,而我们需要的只有后三位,因此不断%1000即可

    注意1次方就符合条件的情况,和小于1000的情况

    AC代码:GitHub

     1 /*
     2 By:OhYee
     3 Github:OhYee
     4 HomePage:http://www.oyohyee.com
     5 Email:oyohyee@oyohyee.com
     6 Blog:http://www.cnblogs.com/ohyee/
     7  
     8 かしこいかわいい?
     9 エリーチカ!
    10 要写出来Хорошо的代码哦~
    11 */
    12  
    13 #include <cstdio>
    14 #include <algorithm>
    15 #include <cstring>
    16 #include <cmath>
    17 #include <string>
    18 #include <iostream>
    19 #include <vector>
    20 #include <list>
    21 #include <queue>
    22 #include <stack>
    23 #include <map>
    24 using namespace std;
    25  
    26 //DEBUG MODE
    27 #define debug 0
    28  
    29 //循环
    30 #define REP(n) for(int o=0;o<n;o++)
    31  
    32 //初始化
    33 #define mst(a) memset(a,-1,sizeof(a))
    34  
    35 const int maxn = 1005;
    36 int visited[maxn];
    37  
    38 bool Do() {
    39     long long n;
    40     if(scanf("%lld",&n) == EOF)
    41         return false;
    42  
    43     mst(visited);
    44  
    45     int N,M,e = 1;
    46     long long k = n;
    47     while(k < 1000) {
    48         k *= n;
    49         e++;
    50     }
    51     k %= 1000;
    52     for(int i = 0;;i++) {
    53         if(visited[k] != -1) {
    54             N = e + i;
    55             M = visited[k];
    56             break;
    57         } else {
    58             visited[k] = e + i;
    59         }
    60         k *= n;
    61         k %= 1000;
    62     }
    63  
    64     printf("%d %d
    ",M,N);
    65  
    66     return true;
    67 }
    68  
    69 int main() {
    70     while(Do());
    71     return 0;
    72 }
  • 相关阅读:
    人脸识别常用数据集大全(12/20更新)
    103 保序回归 isotonic regression
    SVM的概率输出(Platt scaling)
    scikit_learn 中文说明入门
    外点惩处函数法·约束优化问题
    unigui 设置单元格颜色
    一些仪器的解码程序(delphi)
    phpstudy 配置 memcached / memcache
    OmniThreadLibrary学习笔记
    注意微信支付的配置
  • 原文地址:https://www.cnblogs.com/ohyee/p/5513856.html
Copyright © 2011-2022 走看看