基本的輸入輸出
為信宜等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及信宜網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、信宜網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!#includeusing namespace std;
int main()
{
int a,b;
scanf("%d,%d",&a,&b);
cout<< a<< "+"<< b<< "="<< a + b<< endl;
cout<< a<< "-"<< b<< "="<< a - b<< endl;
return 0;
}
日期
格式化輸入即可
#includeusing namespace std;
int main()
{
int y,m,d;
scanf("%2d/%2d/%4d",&m,&d,&y);
printf("%04d%02d%02d",y,m,d);
return 0;
}
平均分
基本的輸入輸出
#includeusing namespace std;
int main( )
{
double a,b,c;
cin >>a >>b >>c;
printf("%lf\n%lf",a + b + c,(a + b + c) / 3.0);
return 0;
}
大公約數(shù)
高中數(shù)學(xué):輾轉(zhuǎn)相除法
#includeusing namespace std;
int gcd(int a,int b)
{
if(a % b == 0)return b;
else return gcd(b,a % b);
}
int main( )
{
int a,b;
cin >>a >>b;
cout<< gcd(a,b)<< endl;
return 0;
}
整除幸運數(shù)
定義一個函數(shù)來實現(xiàn)提取某個數(shù)每位上的數(shù)字,一旦遇到不含7或者4的情況則返回false,代表此數(shù)不是幸運數(shù),否則返回true
實現(xiàn)函數(shù)
bool judge(int n)
{
while(n >0)
{
int num = n % 10;
if(num != 4 && num != 7)return false;
n /= 10;
}
return true;
}
eg1:
n = 8484848
第一次循環(huán):n = 8484848,num = 8,不符合情況,返回false
eg2:
n = 4747447
第一次循環(huán):n = 4747447,num = 7,符合情況,執(zhí)行n /= 10(n /= 10等價于n = n / 10)
第二次循環(huán):n = 474744,num = 4,符合情況,執(zhí)行n /= 10(n /= 10等價于n = n / 10)
第三次循環(huán):n = 47474,num = 4,符合情況,執(zhí)行n /= 10(n /= 10等價于n = n / 10)
第四次循環(huán):n = 4747,num = 7,符合情況,執(zhí)行n /= 10(n /= 10等價于n = n / 10)
第五次循環(huán):n = 474,num = 4,符合情況,執(zhí)行n /= 10(n /= 10等價于n = n / 10)
第六次循環(huán):n = 47,num = 7,符合情況,執(zhí)行n /= 10(n /= 10等價于n = n / 10)
第七次循環(huán):n = 4,num = 4,符合情況,執(zhí)行n /= 10(n /= 10等價于n = n / 10)
第八次循環(huán):由于4 / 10 = 0,n = 0,不滿足while循環(huán)條件,跳出循環(huán)返回true
#includeusing namespace std;
bool judge(int n)
{
while(n >0)
{
int num = n % 10;
if(num != 4 && num != 7)return false;
n /= 10;
}
return true;
}
int main()
{
int n;
cin >>n;
int flag = 0;
for(int i = 2;i<= n;i ++ )
{
if(judge(i) && n % i == 0)
{
flag = 1;
break;
}
}
if(flag == 1)cout<< "YES";
else cout<< "NO";
return 0;
}
線段
本質(zhì)為前n項和的求取的遞推
以下分別為當(dāng)n = 1、2、3、4時線段的條數(shù)
可以發(fā)現(xiàn)題目讓求解的為(n - 1)的階乘
int sum(int n)
{
int ans = 0;
for(int i = 0;i<= n;i ++ )ans += i;
return ans;
}
在mian函數(shù)重調(diào)用即可
#includeusing namespace std;
int sum(int n)
{
int ans = 0;
for(int i = 0;i<= n;i ++ )ans += i;
return ans;
}
int main()
{
int n;
cin >>n;
cout<< sum(n - 1)<< endl;
return 0;
}
圓切平面
注意:本題求取的是平面
遞推+貪心思維:假設(shè)新圓的添加總能完美相交于之前所有圓
一個圓截得的平面數(shù)2
兩個圓截得的平面數(shù)4
三個圓截得的平面數(shù)為8
設(shè)n - 1個圓最多分割a[n - 1]個平面,在添加第n個圓之后能夠完美分割前n -1個圓,于是新增加的平面數(shù)即為2 * (n - 1),由遞推可得:a[i] = a[i - 1] + 2 * (n - 1)
如果還不清楚的話,請看數(shù)學(xué)推論
#includeusing namespace std;
const int N = 1000000 + 10;
int a[N];
int main()
{
int n;
cin >>n;
a[1] = 2;
a[2] = 4;
for(int i = 3;i<= n;i ++ )a[i] = a[i - 1] + 2 * (i - 1);
cout<< a[n]<< endl;
return 0;
}
數(shù)字7
若是7的和或者差,則7必定為其因子,將n對7取余即可,注意特判,0也屬于正確答案。例如:7 - 7
#includeusing namespace std;
int main()
{
int n;
cin >>n;
if(n == 0)
{
cout<< "YES";
return 0;
}
if(n< 0)n = abs(n);
if(n % 7 == 0)cout<< "YES";
else cout<< "NO";
return 0;
}
個人所得稅
大模擬、if-else分支結(jié)構(gòu)
#includeusing namespace std;
int main()
{
int n,ans = 0;
cin >>n;
if(n<= 500)ans = n * 0.05 - 0;
else if(n >500 && n<= 2000)ans = n * 0.1 - 25;
else if(n >2000 && n<= 5000)ans = n * 0.15 - 125;
else if(n >5000 && n<= 20000)ans = n * 0.2 - 375;
else if(n >20000 && n<= 40000)ans = n * 0.25 - 1375;
else if(n >40000 && n<= 60000)ans = n * 0.3 - 3375;
else if(n >60000 && n<= 80000)ans = n * 0.35 - 6375;
else if(n >80000 && n<= 100000)ans = n * 0.4 - 10375;
else ans = n * 0.45 - 15375;
cout<< ans<< endl;
return 0;
}
偶數(shù)位
十進(jìn)制與二進(jìn)制的互相轉(zhuǎn)換
十進(jìn)制轉(zhuǎn)二進(jìn)制,定義trans函數(shù)
十進(jìn)制轉(zhuǎn)二進(jìn)制的本質(zhì)為:n不斷模2取余,倒序鏈接即可
string trans(int n)
{
string s;
while(n >0)
{
int num = n % 2;
char c = num + '0';
s += c;
n /= 2;
}
reverse(s.begin(),s.end());
return s;
}
eg:
10
第一次循環(huán):n = 10,num = 0,s += s + '0';s = "0";n /= 2;
第二次循環(huán):n = 5,num = 1,s = s + '1';s = "01";n /= 2;
第三次循環(huán):n = 2,num = 0,s = s + '0';s = "010" ;n /= 2;
第四次循環(huán):n = 1,num = 1,s = s + '1';s = "0101" ;n /= 2;
第五次循環(huán)不再執(zhí)行,因為n == 0跳出
再將s反轉(zhuǎn)得到"1010"即為10的二進(jìn)制數(shù)
替換偶數(shù)位為0
void deal(string &s)
{
reverse(s.begin(),s.end());
for(int i = 0;i< s.size();i ++ )
{
if(i % 2 == 0)s[i] = '0';
}
reverse(s.begin(),s.end());
}
由于操作以右端為開頭,反轉(zhuǎn)過來操作即可,操作之后再反轉(zhuǎn)返回
十進(jìn)制轉(zhuǎn)二進(jìn)制
int getans(string s)
{
reverse(s.begin(),s.end());
int w = 1,ans = 0;
for(int i = 0;i< s.size();i ++ )
{
int num = s[i] - '0';
ans += num * w;
w *= 2;
}
return ans;
}
最右端為第0位,權(quán)重為2^0 = 1,其后隨著位數(shù)的增加權(quán)重依次增大,累加即可
int getans(string s)
{
reverse(s.begin(),s.end());
int w = 1,ans = 0;
for(int i = 0;i< s.size();i ++ )
{
int num = s[i] - '0';
ans += num * w;
w *= 2;
}
return ans;
}
在main函數(shù)中調(diào)用即可
#include#include
using namespace std;
string trans(int n)
{
string s;
while(n >0)
{
int num = n % 2;
char c = num + '0';
s += c;
n /= 2;
}
reverse(s.begin(),s.end());
return s;
}
void deal(string &s)
{
reverse(s.begin(),s.end());
for(int i = 0;i< s.size();i ++ )
{
if(i % 2 == 0)s[i] = '0';
}
reverse(s.begin(),s.end());
}
int getans(string s)
{
reverse(s.begin(),s.end());
int w = 1,ans = 0;
for(int i = 0;i< s.size();i ++ )
{
int num = s[i] - '0';
ans += num * w;
w *= 2;
}
return ans;
}
int main()
{
int n;
cin >>n;
string s;
s = trans(n);
deal(s);
cout<< getans(s);
return 0;
}
合并
對應(yīng)數(shù)乘其權(quán)重累加
#includeusing namespace std;
int main()
{
int a,b,c;
cin >>a >>b >>c;
cout<< a * 100 + b * 10 + c<< endl;
return 0;
}
公式計算
注意c ++ 默認(rèn)下取整,且有著即使命名為double s,s = 3 / 2仍不等于1.5的情況出現(xiàn),避免此類情況將公式中出現(xiàn)的所有整數(shù)加個.0后綴即可
#includeusing namespace std;
int main()
{
int x,a;
cin >>x >>a;
double ans = 0.5 * (a * 1.0 * x * 1.0 + (a + x) * 1.0 / (4 * a * 1.0));
printf("%.2lf",ans);
return 0;
}
進(jìn)制形式
可以偷個懶使用c語言的格式化輸出
%o 八進(jìn)制 %d 十進(jìn)制 %x 十六進(jìn)制
不偷懶的話也可以學(xué)學(xué)函數(shù)實現(xiàn)進(jìn)制轉(zhuǎn)換
#includeusing namespace std;
int main()
{
int n = 128;
int m = 456789;
printf("%d %o %x\n",n,n,n);
printf("%d %o %X\n",m,m,m);
return 0;
}
等差數(shù)列
首先儲存a,b,c,vector為c ++ 類型的動態(tài)數(shù)組,sort函數(shù)默認(rèn)排序為升序排序
因此將這三個數(shù)存入vector后sort即可得到一個可能遞增的有序序列(可能a == b || a == c || a == b && a == c && b == c)
由高中數(shù)學(xué)知識得,等差中項為前一項和后一項的和除以2
為了避免出現(xiàn)c ++ 向下取整的特殊情況,將公式進(jìn)行等價變形
b = (a + c) / 2 ->2 * b = a + c
#include#include#include
using namespace std;
vectorA;
int main()
{
for(int i = 1;i<= 3;i ++ )
{
int num;
cin >>num;
A.push_back(num);
}
sort(A.begin(),A.end());
if(A[0] + A[2] == 2 * A[1])cout<< "YES";
else cout<< "NO";
return 0;
}
網(wǎng)球比賽
無輸入,邏輯思考出答案,直接輸出即可
#includeusing namespace std;
int main()
{
cout<< "a with z"<< endl;
cout<< "b with x"<< endl;
cout<< "c with y"<< endl;
return 0;
}
大小寫的轉(zhuǎn)換
根據(jù)ASCII碼轉(zhuǎn)換:ASCII表
小寫英文字母的ASCII碼比對應(yīng)的大寫英文字母的ASCII碼要大32
#includeusing namespace std;
int main()
{
char c;
cin >>c;
if(c >= 'a' && c<= 'z')c -= 32;
else if(c >= 'A' && c<= 'Z')c += 32;
cout<< c<< endl;
return 0;
}
寬度與對齊
%m.d輸出寬度為m的整數(shù)
%d為右對齊,%-d為左對齊,
#includeusing namespace std;
int main()
{
int a = 455;
int b = -123;
int c = 987654;
printf("%-5d %5d\n",a,a);
printf("%-5d %5d\n",b,b);
printf("%-5d %5d\n",c,c);
return 0;
}
左右對齊
%m.nlf輸出寬度為m,精度為n的浮點數(shù)
%lf為右對齊,%-lf為左對齊
#includeusing namespace std;
int main()
{
double a = 3.1415926;
double b = 22.3456;
printf("%-14.6lf %14.6lf\n",a,a);
printf("%-14.6lf %14.6lf\n",b,b);
return 0;
}
輸入寬度
格式化讀入與格式化輸出
#includeusing namespace std;
int main()
{
int a,b,c;
scanf("%3d%3d%3d",&a,&b,&c);
printf("%d %d %d",a,b,c);
return 0;
}
寬度精度
使用c ++ 實現(xiàn),#include
setiosflags(ios::fixed)為輸出固定位數(shù)
setprecision(m)為輸出精度為m的小數(shù)
setw(n)為輸出寬度為n的數(shù)字
#include#includeusing namespace std;
int main()
{
int n,m;
cin >>n >>m;
double a = 18.16054;
double b = 17.676767;
cout<< setw(n)<< setiosflags(ios::fixed)<< setprecision(m)<< a<< ' '<< setw(n)<< setiosflags(ios::fixed)<< setprecision(m)<< b<< endl;
return 0;
}
四位數(shù)逆序
移步至上文《數(shù)字7》,同理,換湯不換藥
#includeusing namespace std;
int main()
{
int n;
cin >>n;
while(n >0)
{
cout<< n % 10;
n /= 10;
}
return 0;
}
整理玩具
公式遞推:
假設(shè)有一個玩具:{1}
假設(shè)有兩個玩具:{1,1} {2}
假設(shè)有三個玩具:{1,1,1} {1,2}
假設(shè)有四個玩具:{1,1,1,1} {1,1,2} {2,2}
假設(shè)有五個玩具:{1,1,1,1,1} {1,2,2} {1,1,1,2}
對應(yīng)答案依次為:
當(dāng)n = 1時,1 + 0 = 1
當(dāng)n = 2時,1 + 1 = 2
當(dāng)n = 3時,1 + 1 = 2
當(dāng)n = 4時,1 + 2 = 3
當(dāng)n = 5時,1 + 2 = 3
遞推可得公式ans = 1 + n / 2
#includeusing namespace std;
int main()
{
int n;
cin >>n;
cout<< 1 + n / 2<< endl;
return 0;
}
字符判斷
if - else分支結(jié)構(gòu)
#includeusing namespace std;
int main()
{
char c;
cin >>c;
if(c >= '0' && c<= '9')cout<< "Number"<< endl;
else if(c >= 'A' && c<= 'Z')cout<< "Capital letter"<< endl;
else if(c >= 'a' && c<= 'z')cout<< "Lowercase letter"<< endl;
else if(c == '+' || c == '-' || c == '*' || c == '/')cout<< "Arithmetic operators"<< endl;
else if(c == '=' || c == '>' || c == '<')cout<< "Relational operators"<< endl;
else if(c == '!' || c == '&' || c == '|' || c == '^')cout<< "Logical operators"<< endl;
else cout<< "Other character"<< endl;
return 0;
}
單位矩陣
高等數(shù)學(xué)-線性代數(shù)之中的概念,于編程之中可以理解為只有主對角線元素為1,其余元素均為0的二維矩陣
#includeusing namespace std;
int a[10][10];
int main()
{
for(int i = 1;i<= 3;i ++ )
{
for(int j = 1;j<= 3;j ++ )
{
cin >>a[i][j];
if(i == j)
{
if(a[i][j] == 1)continue;
else
{
cout<< "NO";
return 0;
}
}
else if(a[i][j] != 0)
{
cout<< "NO";
return 0;
}
}
}
cout<< "YES";
return 0;
}
閏年
閏年有兩種情況
能被4整除且不能被100整除
能被400整除
#includeusing namespace std;
bool judge(int n)
{
if((n % 4 == 0 && n % 100 != 0) || (n % 400 == 0))return true;
else return false;
}
int main()
{
int n;
cin >>n;
if(judge(n))cout<< "Y";
else cout<< "N";
return 0;
}
時間也能加
只考慮題目要求,首先秒滿60進(jìn)1,其次分鐘滿60再進(jìn)1
#includeusing namespace std;
int main()
{
int h1,m1,s1,h2,m2,s2;
cin >>h1 >>m1 >>s1 >>h2 >>m2 >>s2;
int h = h1 + h2;
int m = m1 + m2;
int s = s1 + s2;
if(s >= 60)
{
m ++ ;
s -= 60;
}
if(m >= 60)
{
h ++ ;
m -= 60;
}
cout<< h<< " "<< m<< " "<< s;
return 0;
}
非常大的N
#include
sqrt(a,b)獲取a的b次方
開方使b = 0.5即可,即a的0.5次方,a的開方
#include#includeusing namespace std;
int main()
{
double ans = 0;
int n,flag = 1;
cin >>n;
for(int i = 1;i<= n;i ++ )
{
ans += sqrt(i) * flag;
flag = -flag;
}
printf("%.6lf",ans);
return 0;
}
三角形坐標(biāo)
根據(jù)公式輸出計算即可,注意c ++ 向下取整以及double類型整數(shù)除整數(shù)仍得整數(shù)的情況,為整數(shù)添加.0后綴
#include#includeusing namespace std;
int main()
{
int x1,y1,x2,y2,x3,y3;
cin >>x1 >>y1 >>x2 >>y2 >>x3 >>y3;
double S = 0.5 * abs(x1 * y2 + x2 * y3 + x3 * y1 - x1 * y3 - x2 * y1 - x3 * y2);
printf("%.2lf",S);
return 0;
}
向下取整
還是#include
sqrt函數(shù)(移步至《非常大的N》)和floor函數(shù)
floor(a);為對a的向下取整
eg:
floor(3.999999) = 3;
#include#includeusing namespace std;
int main()
{
double n;
cin >>n;
int ans = floor(pow(n,1.0 / 3));
printf("%3d",ans);
return 0;
}
時刻求和
對12取余即可
#includeusing namespace std;
int main()
{
int a,b;
cin >>a >>b;
printf("%3d",(a + b) % 12);
return 0;
}
點與線段的關(guān)系
首先題目當(dāng)中包含無關(guān)的字符,要抑制這些字符的讀入只讀數(shù)字
int x1,y1,x2,y2,x3,y3;
scanf("(%d,%d) (%d,%d)\n",&x1,&y1,&x2,&y2);
scanf("(%d,%d)",&x3,&y3);
其次判斷點是否在線段上
三點共線公式
(x2-x1) * (y3-y1) - (x3-x1) * (y2-y1) == 0
只有點位于線段上才算正確,因此點3到點1的距離與點3到點2的距離是嚴(yán)格小于等于點1到點2距離的
計算兩點之間的距離
int dis(int x1,int y1,int x2,int y2)
{
int s = pow((x1 - x2),2) + pow((y1 - y2),2);
return s;
}
綜上所述
#include#includeusing namespace std;
int dis(int x1,int y1,int x2,int y2)
{
int s = pow((x1 - x2),2) + pow((y1 - y2),2);
return s;
}
int main()
{
int x1,y1,x2,y2,x3,y3;
scanf("(%d,%d) (%d,%d)\n",&x1,&y1,&x2,&y2);
scanf("(%d,%d)",&x3,&y3);
if((x2-x1) * (y3-y1) - (x3-x1) * (y2-y1) == 0 && dis(x1,y1,x2,y2) >= dis(x1,y1,x3,y3) && dis(x1,y1,x2,y2) >= dis(x2,y2,x3,y3))cout<< "YES";
else cout<< "NO";
return 0;
}
卡羅爾數(shù)
化簡4 * n - 2 * (n + 1) - 1 = 2 * n - 3 = N<--->n = (N + 3) / 2
在這里使用一個類型轉(zhuǎn)換的方式
double n;根據(jù)輸入的N求出n的值,題目要求n必須為正整數(shù),因此浮點數(shù)n的小數(shù)位不能有數(shù)字double flag = n - int(n);來獲取標(biāo)志
eg:
輸入N = 1,n = 4 / 2.0 = 2.0;int(n) = 2;double flag = 2.0 - 2 = 0
輸入N = 2,n = 5 / 2.0 = 2.5;int(n) = 2;double flag = 2.5 - 2 = 0.5
因此,若是flag為0,則n為正整數(shù),輸出YES,否則輸出NO
#includeusing namespace std;
int main()
{
int N;
cin >>N;
double n = (N + 3) / 2.0;
double flag = n - int(n);
if(flag == 0)cout<< "YES"<< endl;
else cout<< "NO"<< endl;
return 0;
}
整除的總數(shù)
if語句
#includeusing namespace std;
int main()
{
int n,m,k,ans = 0;
cin >>n >>m >>k;
for(int i = n;i<= m;i ++ )
{
if(i % k == 0)ans ++ ;
}
cout<< ans<< endl;
return 0;
}
尾數(shù)為零
循環(huán),if語句
#includeusing namespace std;
typedef long long ll;
ll fun(ll n)
{
ll ans = 1;
for(ll i = 1;i<= n;i ++ )ans *= i;
return ans;
}
int main()
{
ll n,ans = 0;
cin >>n;
for(ll i = 1;i<= n;i ++ )
{
int num = fun(i);
if(num % 10 == 0)ans ++ ;
}
cout<< ans<< endl;
return 0;
}
數(shù)組的大公約數(shù)
移步參考《大公約數(shù)》
#includeusing namespace std;
const int N = 100000 + 10;
int a[N];
int gcd(int a,int b)
{
if(a % b == 0)return b;
else return gcd(b,a % b);
}
int main()
{
int n;
cin >>n;
for(int i = 1;i<= n;i ++ )cin >>a[i];
int ans = gcd(a[1],a[2]);
for(int i = 3;i<= n;i ++ )ans = gcd(ans,a[i]);
cout<< ans<< endl;
return 0;
}
古人的剩余定理
if、循環(huán)
#includeusing namespace std;
int main()
{
for(int i = 1;;i ++ )
{
if(i % 3 == 2 && i % 5 == 3 && i % 7 == 2)
{
cout<< i<< endl;
break;
}
}
return 0;
}
四邊形坐標(biāo)
公式計算
#includeusing namespace std;
double traS(int x1,int y1,int x2,int y2,int x3,int y3)
{
double S = 0.5 * abs(x1 * y2 - x1 * y3 + x2 * y3 - x2 * y1 + x3 * y1 - x3 * y2);
return S;
}
int main()
{
int x1,y1,x2,y2,x3,y3,x4,y4;
cin >>x1 >>y1 >>x2 >>y2 >>x3 >>y3 >>x4 >>y4;
double ans = traS(x1,y1,x2,y2,x3,y3) + traS(x2,y2,x3,y3,x4,y4) + traS(x1,y1,x2,y2,x4,y4) + traS(x1,y1,x3,y3,x4,y4);
printf("%.2lf",ans / 2.0);
return 0;
}
空間三角形
海倫公式,兩點之間的距離公式
#include#includeusing namespace std;
double dis(double x1,double y1,double z1,double x2,double y2,double z2)
{
double s = sqrt(pow(x1 - x2,2) + pow(y1 - y2,2) + pow(z1 - z2,2));
return s;
}
int main()
{
double x1,y1,z1,x2,y2,z2,x3,y3,z3;
cin >>x1 >>y1 >>z1 >>x2 >>y2 >>z2 >>x3 >>y3 >>z3;
double a = dis(x1,y1,z1,x2,y2,z2);
double b = dis(x1,y1,z1,x3,y3,z3);
double c = dis(x2,y2,z2,x3,y3,z3);
double p = (a + b + c) / 2;
double s = sqrt(p * (p - a) * (p - b) * (p - c));
printf("%.2lf",s);
return 0;
}
四葉玫瑰數(shù)
if語句
#include#includeusing namespace std;
bool judge(int n)
{
int t = n;
int ans = 0;
while(t >0)
{
int num = t % 10;
ans += pow(num,4);
t /= 10;
}
if(ans == n)return true;
else return false;
}
int main()
{
int n;
cin >>n;
if(n == 1634 || n == 8208 || n == 9474)cout<< "YES";
else cout<< "NO";
return 0;
}
完美數(shù)字
if語句
#include#includeusing namespace std;
int fun(int n)
{
int mul = 1;
for(int i = 1;i<= n;i ++ )mul *= i;
return mul;
}
bool judge(int n)
{
int t = n,ans = 0;
while(t >0)
{
int num = t % 10;
ans += fun(num);
t /= 10;
}
if(ans == n)return true;
else return false;
}
int main()
{
int n;
cin >>n;
if(judge(n))cout<< "YES";
else cout<< "NO";
return 0;
}
指定集合
if、循環(huán)
#includeusing namespace std;
const int N = 1000000 + 10;
int a[N];
int main()
{
int n,flag = 0;
cin >>n;
for(int i = 1;i<= n;i ++ )
{
cin >>a[i];
if(a[i] == 4 || a[i] == 5 || a[i] == 6)
{
flag = 1;
cout<< a[i]<< ' ';
}
}
if(flag == 0)cout<< -1;
return 0;
}
階乘數(shù)
循環(huán),if
#include#includeusing namespace std;
int fun(int n)
{
int mul = 1;
for(int i = 1;i<= n;i ++ )mul *= i;
return mul;
}
int main()
{
int n;
cin >>n;
for(int i = 1;i<= 14;i ++ )
{
int num = fun(i);
if(num == n)
{
cout<< "YES";
return 0;
}
else if(num< n)continue;
else break;
}
cout<< "NO";
return 0;
}
真因子
if、循環(huán)
#includeusing namespace std;
int main()
{
int n;
cin >>n;
int ans = 0;
for(int i = 1;i< n;i ++ )
{
if(n % i == 0)ans += i;
}
cout<< ans<< endl;
return 0;
}
平方根X
參考《非常大的N》中sqrt的函數(shù)用法與《向下取整》中floor函數(shù)的用法
#include#includeusing namespace std;
int main()
{
int n;
cin >>n;
double num = sqrt(n);
if(num * num == n)cout<< int(num);
else cout<< int(floor(num));
return 0;
}
全部整除
循環(huán)、選擇
#includeusing namespace std;
int gcd(int a,int b)
{
if(a % b == 0)return b;
else return gcd(b,a % b);
}
int lcd(int a,int b)
{
return (a * b) / (gcd(a,b));
}
int main()
{
int n;
cin >>n;
int ans = 0;
if(n == 1)
{
cout<< 1;
return 0;
}
else
{
ans = lcd(1,2);
for(int i = 3;i<= n;i ++ )ans = lcd(ans,i);
}
cout<< ans<< endl;
return 0;
}
快來一起加入百度松果菁英班,一起學(xué)習(xí)算法與飛槳吧?。?!
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧