信息学奥赛一本通 1171:大整数的因子 | OpenJudge NOI 1.6 13:大整数的因子
【题目链接】
ybt 1171:大整数的因子
OpenJudge NOI 1.6 13:大整数的因子
【题目考点】
1. 高精度
考察:高精模低精
高精度计算讲解
【解题思路】
先把参与运算的数字当成低精度数字,来解决这个问题,不难写出代码:
int main()
{int k, c;cin >> c;bool hasK = false;for(int k = 2; k <= 9; ++k){if(c % k == 0){cout << k << ' ';hasK = true;}}if(hasK == false)cout << "none";return 0;
}
本题中,c是高精度数字,k范围为2~9,仍然是低精度数字。那么只需要把c%k==0
改写为高精模低精,即可解决该问题。
【题解代码】
解法1:函数+数组
#include<bits/stdc++.h>
using namespace std;
#define N 35
//将字符数组转化为数字数组 数字数组从第1位置到第len位置,从低位到高位保存各位数字,第0位置保存数字位数
void toNum(char s[], int a[])
{a[0] = strlen(s);for(int i = 1; i <= a[0]; ++i)a[i] = s[a[0] - i] - '0';
}
//高精模低精
int Mod(int a[], int b)
{int x = 0;for(int i = a[0]; i >= 1; --i)x = (x * 10 + a[i]) % b;return x;
}
int main()
{int n, k, c[N] = {}; char s[N];bool hasK = false;cin >> s;toNum(s, c);for(k = 2; k <= 9; ++k){if(Mod(c, k) == 0){cout << k << ' ';hasK = true;}}if(hasK == false)cout << "none";return 0;
}
解法2:类中重载运算符
#include <bits/stdc++.h>
using namespace std;
#define N 35
struct HPN
{int a[N];//数字数组HPN(){memset(a, 0, sizeof(a));}HPN(char s[]){memset(a, 0, sizeof(a));int len = strlen(s);for(int i = 0; i < len; ++i)a[len - i] = s[i] - '0';a[0] = len;}int operator % (int b) //高精模低精{int x = 0;for(int i = a[0]; i >= 1; --i)x = (x * 10 + a[i]) % b;return x;}
};
int main()
{char s[N];cin >> s;HPN c(s);//高精数字c bool hasK = false;for(int k = 2; k <= 9; ++k){if(c % k == 0)//高精模低精 {cout << k << ' ';hasK = true;}}if(hasK == false)cout << "none";return 0;
}
信息学奥赛一本通 1171:大整数的因子 | OpenJudge NOI 1.6 13:大整数的因子相关推荐
- 信息学奥赛一本通 1063:最大跨度值 | OpenJudge NOI 1.5 06:整数序列的元素最大跨度值
[题目链接] ybt 1063:最大跨度值 OpenJudge NOI 1.5 06:整数序列的元素最大跨度值 [题目考点] 1. 求n个数中的最大值 方法1: 设置临时最大值变量mx,mx的初始值应 ...
- 信息学奥赛一本通 1227:Ride to Office | OpenJudge NOI 4.6 2404:Ride to Office
[题目链接] ybt 1227:Ride to Office OpenJudge NOI 4.6 2404:Ride to Office 原题是英文题,虽说两题题意相同,但一本通网站没有对该问题进行直 ...
- 信息学奥赛一本通 1223:An Easy Problem | OpenJudge NOI 4.6 1455:An Easy Problem
[题目链接] ybt 1223:An Easy Problem OpenJudge NOI 4.6 1455:An Easy Problem [题目考点] 1. 数制 2. 枚举 [解题思路] 解法1 ...
- 信息学奥赛一本通 1038:苹果和虫子 | OpenJudge NOI 1.3 15 | OpenJudge NOI 1.4 21
[题目链接] ybt 1038:苹果和虫子 OpenJudge NOI 1.3 15:苹果和虫子 OpenJudge NOI 1.4 21:苹果和虫子2 [题目考点] 1. if-else语句 if( ...
- 信息学奥赛一本通 1218:取石子游戏 | OpenJudge NOI 2.5 6266:取石子游戏
[题目链接] ybt 1218:取石子游戏 OpenJudge NOI 2.5 6266:取石子游戏 [题目考点] 1. 博弈:完全信息博弈 博弈树: 博弈树的结点对应于某一个棋局,其分支表示走一步棋 ...
- 信息学奥赛一本通 1229:电池的寿命 | OpenJudge NOI 4.6 2469:电池的寿命
[题目链接] ybt 1229:电池的寿命 OpenJudge NOI 4.6 2469:电池的寿命 [题目考点] 1. 贪心 [解题思路] 1. 贪心选择性质的证明 电池分配主要有两步, 第一步:将 ...
- 信息学奥赛一本通 1119:矩阵交换行 | OpenJudge NOI 1.8 01 矩阵交换行
[题目链接] ybt 1119:矩阵交换行 OpenJudge NOI 1.8 01:矩阵交换行 [题目考点] 1. 二维数组 2. 交换两个int型整数 使用<iostream>中的sw ...
- 信息学奥赛一本通 1116:最长平台 | OpenJudge NOI 1.9 12:最长平台 | 洛谷 B2097 最长平台
[题目链接] ybt 1116:最长平台 OpenJudge NOI 1.9 12:最长平台 洛谷 B2097 最长平台 [题目考点] 1. 数组中做统计 2. 求最大值 [解题思路] 解法1:遍历并 ...
- 信息学奥赛一本通 1080:余数相同问题 | OpenJudge NOI 小学奥数/2.1 7647:余数相同问题
[题目链接] ybt 1080:余数相同问题 OpenJudge NOI 2.1 7647:余数相同问题 OpenJudge NOI 小学奥数 7647:余数相同问题 [题目考点] 1. 枚举 [解题 ...
最新文章
- 《UX最佳实践:提高用户体验影响力的艺术 》一3.6 总结
- [ 1001] 动态开辟二维数组的说明
- java(eclipse)和数据库(mysql)的连接
- python知识点智能问答_基于知识图谱的智能问答机器人
- MYSQL学习笔记三:日期和时间函数
- HAProxy+Hive构建高可用数据挖掘集群
- Stack Overflow 2017 开发者调查报告(程序员必看)
- 电子商务发展的中心主体与边缘业务
- linux根目录下各子目录的作用
- 什么是即时通讯系统?
- IOS13以上抓https包,基于win7+Fiddler,操作记录
- Spring boot 集成邮件通知及线程异步发送
- 山东科技大学计算机篮球,山东科技大学第十七届学生男子篮球赛开幕
- python 查看所有变量_CentOS6.查看 Python中变量的信息(名称类型内容等)
- android shell卸载应用程序,android系统软件卸载_adb配置使用
- Jlink仿真sw调试方式的4线连接方式
- 光学定位与追踪技术_光学跟踪技术定位精准罗技M90鼠标仅32
- 导致cannot access memory的原因是什么?
- 新建域用户“User Profile Service 服务未能登录,无法加载用户配置文件”
- linux kmplayer字幕乱码解决