国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

寒假訓(xùn)練七之暴力枚舉~

2019-11-06 06:03:53
字體:
供稿:網(wǎng)友

丹青樓

PRoblem:A

Time Limit:1000ms

Memory Limit:65536K

Description 在NEFU校園內(nèi),有一棟丹青樓,總共有17?777?777?777層,編號從-?8?888?888?888 到8?888?888?888。尤其是,這里有0層,即在-1層與1層之間。 有一個(gè)觀點(diǎn)存在于NEFU學(xué)生心中,那就是數(shù)字‘8’是幸運(yùn)數(shù)字。而且,如果一個(gè)整數(shù)里面至少包含一個(gè)數(shù)字‘8’那么這個(gè)整數(shù)就是幸運(yùn)的,即在這樓層考試,你就肯定不會(huì)掛科。例如,8,-180,808這些都是幸運(yùn)數(shù)字,42,-10這些不是。 那么,你即將在丹青樓參加一場考試,考場樓層讓你選。你現(xiàn)在在a層,你需要找一個(gè)最小的正整數(shù)b,你往上再走b層就可以到達(dá)為幸運(yùn)數(shù)字的樓層,從而確保這場考試不掛。

Input 輸入為一個(gè)整數(shù),即題干中所描述的a(-10^9<=a<=10^9)

Output 輸出只有一行,即所要求的b。

Sample Input 179 -1 18 Sample Output 1 9 10

代碼

#include <iostream>#include<stdio.h>#include<cmath>using namespace std;int main(){ int a,y,i; while(cin>>a) { for(i=a+1;; i++) { int flag=0; int k=abs(i); while(k!=0) { int s=k%10; k=k/10; if(s==8) { flag=1; break; } } if(flag==1) break; } int k1=abs(i-a); cout<<k1<<endl; } return 0;}

數(shù)學(xué)題

Problem:B

Time Limit:1000ms

Memory Limit:65536K

Description 由于參加數(shù)學(xué)考試時(shí)你沒有選對幸運(yùn)樓層,數(shù)學(xué)肯定是掛了,現(xiàn)在你開始為開學(xué)前補(bǔ)考做準(zhǔn)備。 現(xiàn)在你遇到了一個(gè)數(shù)學(xué)題,對于下面的這個(gè)方程,你要求出x(0?<?x?<?10^9)的所有整數(shù)解 x=b*S(x)^a+c 其中a,b,c是給定的值,函數(shù)S(x)求得是整數(shù)x上的所有數(shù)字之和。 現(xiàn)在,需要你來解決這道題。

Input 輸入只有一行,分別為題干中描述的a,b,c(1<=a<=5, 1<=b<=10000,-10000<=c<=10000)

Output 輸出有兩行,第一行為n,表示你找到了n組解,第二行為n個(gè)整數(shù),即你找到的對于上述方程的n個(gè)解,且以升序排列。每個(gè)解都嚴(yán)格大于0且小于10^9。

Sample Input 3 2 8 1 2 -18 2 2 -1

Sample Output 3 10 2008 13726 0 4 1 31 337 967

代碼

#include <iostream>#include<stdio.h>#include<cmath>#include<algorithm>using namespace std;int main(){ int a,b,c; int s[1000]; int j,len,h,sum1,i,d; while(cin>>a>>b>>c) { for(i=1,j=0,sum1=0; i<=81; i++) { for(d=0,h=1; d<a; d++) h*=i; int x=b*h+c; int k=x; int sum=0; while(x!=0) { sum+=x%10; x=x/10; } if(sum==i) { sum1++; s[j]=k; j++; len=j; } } cout<<sum1<<endl; if(sum1!=0) { sort(s,s+len); cout<<s[0]; for(j=1; j<len; j++) cout<<" "<<s[j]; cout<<endl; } } return 0;}

素?cái)?shù)問題

Problem:C

Time Limit:1000ms

Memory Limit:65536K

Description 現(xiàn)在給你一個(gè)正整數(shù)n(n<=10000),問你有多少組(p1,p2,p3)滿足p1<=p2<=p3,p1,p2,p3都是素?cái)?shù),且p1+p2+p3=n

Input 輸入只有一行,為n(n<=10000)

Output 輸出也只有一行,即所問有多少組(p1,p2,p3)

Sample Input 3 9 Sample Output 0 2

代碼

這道題之前會(huì)寫…..然后過了幾個(gè)星期后居然又忘記咋寫了…orz.. 寫錯(cuò)是因?yàn)闀r(shí)間超時(shí),我的想法一開始很簡單就是把1-n的素?cái)?shù)全部存到數(shù)組中,然后三個(gè)循環(huán)把和為n的情況求出來…. 但是吧,這樣是超時(shí)的…..3個(gè)循環(huán)花費(fèi)的時(shí)間貌似有點(diǎn)多呀。。 然后我看了其他題又想到了另一種想法,就是用兩層循環(huán),n減去那兩個(gè)數(shù),得到p3,判斷p3是不是質(zhì)數(shù),但是判斷它是不是質(zhì)數(shù)的時(shí)候是在那兩重循環(huán)里的,所以時(shí)間花的很多,因此也行不通。。。。

#include<iostream>#include <stdio.h>#include <math.h>#include<string.h>#include<algorithm>using namespace std;int main(){ int n,i,j,len; int a[10000],b[10000]; while(cin>>n) { memset(b,0,sizeof(b)); for(int x=2,i=0; x<=n; x++) { if(x==2||x==3) { a[i]=x; i++; len=i; b[x]=1; } else { for(j=2; j<x; j++) { if(x%j==0) break; } if(j>=x) { a[i]=x; i++; len=i; b[x]=1; } } } int sum=0; for(int k1=0; k1<len; k1++) for(int k2=0; k2<len; k2++) { int k3=n-a[k1]-a[k2]; if(a[k1]<=a[k2]&&a[k1]<=k3&&a[k2]<=k3) { if(b[k3]==1) sum++; } } cout<<sum<<endl; }}

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: SHOW| 寿光市| 锡林浩特市| 嘉善县| 梁平县| 杭州市| 商洛市| 象州县| 罗定市| 临武县| 海林市| 凤冈县| 布尔津县| 柳江县| 南岸区| 长阳| 谢通门县| 崇明县| 临邑县| 咸丰县| 台江县| 邻水| 增城市| 望奎县| 手游| 鹤山市| 浏阳市| 沧源| 五原县| 南通市| 武胜县| 纳雍县| 德昌县| 靖州| 四平市| 高阳县| 梓潼县| 大渡口区| 闽清县| 紫金县| 万盛区|