当前位置:网站首页>Informatics Olympiad YBT 1171: factors of large integers | 1.6 13: factors of large integers
Informatics Olympiad YBT 1171: factors of large integers | 1.6 13: factors of large integers
2022-07-07 01:02:00 【Jun Yi_ noip】
【 Topic link 】
ybt 1171: The factor of a large integer
OpenJudge NOI 1.6 13: The factor of a large integer
【 Topic test site 】
1. High precision
Investigate : High precision die low precision
Explanation of high-precision calculation
【 Their thinking 】
First treat the numbers involved in the operation as low precision numbers , To solve this problem , It's not hard to write code :
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;
}
In this question ,c Is a high-precision number ,k The scope is 2~9, It is still a low precision number . Then just put c%k==0
Rewritten as high precision die low precision , To solve the problem .
【 Solution code 】
solution 1: function + Array
#include<bits/stdc++.h>
using namespace std;
#define N 35
// Convert a character array to a number array The number array starts from 1 Position to len Location , Save the numbers from low to high , The first 0 Position saves the number of digits
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';
}
// High precision die low precision
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;
}
solution 2: Overloaded operator in class
#include <bits/stdc++.h>
using namespace std;
#define N 35
struct HPN
{
int a[N];// Array of numbers
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) // High precision die low precision
{
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);// High precision digital c
bool hasK = false;
for(int k = 2; k <= 9; ++k)
{
if(c % k == 0)// High precision die low precision
{
cout << k << ' ';
hasK = true;
}
}
if(hasK == false)
cout << "none";
return 0;
}
边栏推荐
猜你喜欢
建立自己的网站(17)
Summary of being a microservice R & D Engineer in the past year
View remote test data and records anytime, anywhere -- ipehub2 and ipemotion app
Activereportsjs 3.1 Chinese version | | | activereportsjs 3.1 English version
第四篇,STM32中断控制编程
ZYNQ移植uCOSIII
筑梦数字时代,城链科技战略峰会西安站顺利落幕
学习使用代码生成美观的接口文档!!!
Five different code similarity detection and the development trend of code similarity detection
【YoloV5 6.0|6.1 部署 TensorRT到torchserve】环境搭建|模型转换|engine模型部署(详细的packet文件编写方法)
随机推荐
随时随地查看远程试验数据与记录——IPEhub2与IPEmotion APP
How do novices get started and learn PostgreSQL?
筑梦数字时代,城链科技战略峰会西安站顺利落幕
重上吹麻滩——段芝堂创始人翟立冬游记
动态规划思想《从入门到放弃》
Deep learning framework TF installation
Slow database query optimization
腾讯云 WebShell 体验
Building a dream in the digital era, the Xi'an station of the city chain science and Technology Strategy Summit ended smoothly
[C language] dynamic address book
[HFCTF2020]BabyUpload session解析引擎
paddlehub应用出现paddle包报错的问题
Data processing of deep learning
深入探索编译插桩技术(四、ASM 探秘)
Zabbix 5.0:通过LLD方式自动化监控阿里云RDS
Advanced learning of MySQL -- basics -- basic operation of transactions
[batch dos-cmd command - summary and summary] - view or modify file attributes (attrib), view and modify file association types (Assoc, ftype)
ActiveReportsJS 3.1中文版|||ActiveReportsJS 3.1英文版
Distributed cache
深度学习之线性代数