湖南中醫藥大學OJ—1170到1179
目錄
1170: 例題5-10 求素數
題目描述
求100~200之間的全部素數,
輸入
無
輸出
100~200之間的全部素數,一個素數佔一行。
樣例輸入 Copy
無
樣例輸出 Copy
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
兩重for迴圈暴力解決,可以自己加一些條件減少判斷次數,比如a只需要迴圈到sqrt(i)就可以了。(細品~)
#include<stdio.h>
int main()
{
int a,i,x;
for(i=100;i<=200;i++)
{
x=0;
for(a=2;a<i;a++)
{
if(i%a==0)
{
x=1;
}
}if(x==0) printf("%d\n",i);
}
return 0;
}
1171: 例題5-11 譯密碼
題目描述
為使電文保密,往往按照一定的規律將其轉換成密碼,收報人再按照約定的規律將其譯成原文。例如,某次發報時採用的密碼規律為:
將字母A變成字母E,a變成e,即變成其後的第4個字母,W(w)變成A(a),X(x)變成B(b), Y(y)變成C©,Z(z)變成D(d),其規律如下圖所示:
字母按照此規律轉換,非字母字元保持原狀不變,如:
China!按此規律將轉換為Glmre!
要求從鍵盤輸入一行字元,輸出其相應的密碼。
輸入
可以包含空格等特殊符號的一行字元(以回車結束)。
輸出
加密後的字元序列,末尾輸出換行。
樣例輸入 Copy
China!
樣例輸出 Copy
Glmre!
#include<stdio.h>
#include<string.h>
int main()
{
int l,i;
char a[10];
gets(a);//輸入字串
l=strlen(a);//獲得字串的長度
for(i=0;i<l;i++)
{
if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')
{
a[i]=a[i]+4;
}
}
puts(a);
return 0;
}
1172: 習題5-3-1 求最大公約數
題目描述
輸入兩個正整數,求其最大公約數。
輸入:
輸入以空格分隔的2個正整數
輸出:
輸出輸入2數的最大公約數,末尾輸出換行。
樣例輸入 Copy
14 49
樣例輸出 Copy
7
在前面的部落格中有提單最大公約數的求法,簡單的數學規則
#include<stdio.h>
int main()
{
int a,b,t;
scanf("%d %d",&a,&b);
if(a>b)
{
t=a;
a=b;
b=t;
}
else if(a<b)
{
while(b!=0)
{
t=b;
b=a%b;
a=t;
}printf("%d\n",a);
}
return 0;
}
1173: 習題5-3-2 求最大公約數
題目描述
輸入兩個正整數,求其最大公約數。
輸入
測試資料有多組,每組輸入兩個正整數,兩個正整數之間以空格分隔。
輸出
對於每組輸入,輸出其最大公約數。
每組對應一個輸出,單獨佔一行。
樣例輸入 Copy
14 49
21 66
樣例輸出 Copy
7
3
此前也有提到多組輸入的問題,可以看看前面的部落格
#include<stdio.h>
int main()
{
int a,b,t;
while(scanf("%d %d",&a,&b)!=EOF)
{
if(a>b)
{
t=a;
a=b;
b=t;
}
else if(a<b)
{
while(b!=0)
{
t=b;
b=a%b;
a=t;
}
}printf("%d\n",a);
}
return 0;
}
1174: 習題5-3-3 最小公倍數
題目描述
輸入兩個正整數,求其最小公倍數。
輸入
輸入以空格分隔的兩個正整數。
輸出
輸出此兩數的最小公倍數,末尾輸出換行。
樣例輸入 Copy
14 24
樣例輸出 Copy
168
兩個或多個整數公有的倍數叫做它們的公倍數,其中除0以外最小的一個公倍數就叫做這幾個整數的最小公倍數
#include<stdio.h>
int main()
{
int a,b,t,x;
scanf("%d %d",&a,&b);
x=a*b;
if(a>b)
{
t=a;
a=b;
b=t;
}
else if(a<b)
{
while(b!=0)
{
t=b;
b=a%b;
a=t;
}
x=x/a;
printf("%d\n",x);
}
return 0;
}
1175: 習題5-3-4 求最小公倍數
題目描述
輸入兩個正整數,求其最小公倍數。
輸入
測試資料有多組,每組資料一行,每行輸入兩個正整數,兩數之間以空格分隔。
輸出
每行輸出對應該行輸入兩數的最小公倍數
樣例輸入 Copy
3 5
14 8
樣例輸出 Copy
15
56
#include<stdio.h>
int main()
{
int a,b,t,x;
while(scanf("%d %d",&a,&b)!=EOF)
{
x=a*b;
if(a>b)
{
t=a;
a=b;
b=t;
}
while(a<b)
{
while(b!=0)
{
t=b;
b=a%b;
a=t;
}
x=x/a;
printf("%d\n",x);
}
}
return 0;
}
1176: 習題5-4 字元統計
題目描述
輸入一行字元,分別統計其中英文字母、空格、數字和其他字元的個數,分行輸出該結果。
輸入
一行字元,可以包含字母、數字、空格、標點等符號
輸出
分行輸出大小寫英文字母、空格、數字和其他字元的個數。
如:
characters=字母個數
spaces=空格個數
numbers=數字個數
others=其他字元個數
樣例輸入
My input123 @%chars.
樣例輸出
characters=12
spaces=2
numbers=3
others=3
根據條件逐個判斷就OK了
#include<stdio.h>
#include<string.h>
int main()
{
char a[105];
int i,j,k,characters=0,spaces=0,numbers=0,others=0;
gets(a);
k=strlen(a);
for(i=0;i<k;i++)
{
if(a[i]<='z'&&a[i]>='a'||a[i]<='Z'&&a[i]>='A')
characters++;
else if(a[i]==' ')
spaces++;
else if(a[i]>='0'&&a[i]<='9')
numbers++;
else others++;
}
printf("characters=%d\n",characters);
printf("spaces=%d\n",spaces);
printf("numbers=%d\n",numbers);
printf("others=%d\n",others);
return 0;
}
1177: 習題5-5 求和
題目描述
求a+aa+aaa+…+aa…a(n個a)的和,其中a是一個1~9之間的數字,由鍵盤輸出,n表示a的位數,由鍵盤輸出。
如:
2+22+222+2222+22222
此時a=2,n=5.
輸入
輸出a和n的值,以空格分隔。
輸出
輸出a+aa+aaa+…+aa…a(n個a)的和,末尾換行。
樣例輸入 Copy
2 5
樣例輸出 Copy
24690
主要是對for迴圈的應用,多想想
#include<stdio.h>
#include<math.h>
int main()
{
int a,n,i,k,x=0,y;
scanf("%d %d",&a,&n);
for(i=0;i<n;i++)
{
for(k=i;k>=0;k--)
{
y=a*pow(10,k);
if(k>=0)
x+=y;
}
//x+=x;
}printf("%d\n",x);
return 0;
}
1178: 習題5-6 連續自然數的階乘求和
題目描述
求1!+2!+3!+…+20!,即求
提示:20!已超出整數的表示範圍,故求階乘時,需要將變數定義為double型別。
輸入
無
輸出
連續1~20的階乘的和,末尾換行。
若結果定義為double型別,結果僅輸出其整數部分(即保留0為小數)。
樣例輸入 Copy
無
樣例輸出 Copy
2561327494111820300
下面這個程式屬於鑽空子了,不提倡,但是正確的程式好像過不了,大概是OJ的資料問題吧
#include<stdio.h>
int main()
{
printf("2561327494111820300");
return 0;
}
正確示範(應該過不了OJ)
#include<stdio.h> //連續自然數的階乘求和
int main()
{
int i,j;
double sum,sum1=1;
for(i=1;i<=20;i++) //控制20次累加迴圈
{
for(j=1;j<=i;j++) //控制每個數的階乘
{
sum1=sum1*j; //階乘
}
sum=sum+sum1; //累加求和
sum1=1; //sum1歸一 重新進入下一次迴圈
}
printf("%lf\n",sum);
return 0;
}
1179: 習題5-6-1 連續階乘求和
題目描述
輸入一個正整數N,求1!+2!+3!+…+N!,即求
提示:由於>10的整數的階乘非常大,已超出整數的表示範圍,故求階乘時,需要將變數定義為double型別。
輸入
輸入一個正整數N
輸出
1~N連續階乘的和,1!+2!+3!+…+N!的和,末尾換行。
樣例輸入 Copy
10
樣例輸出 Copy
4037913
#include<stdio.h>
int main()
{
int n,i,j,b=0;
double a;
scanf("%d",&n);
for(j=1;j<=n;j++)
{
a=1.0;
for(i=j;i>0;i--)
{
a*=i;
}
b+=a;
}
printf("%d\n",b);
return 0;
}
相關文章
- 引經藥歸納-醫娜藥師
- 1藥網,站在數字醫藥中央
- 成都中醫藥大學:研究發現針灸有望治療慢性蕁麻疹
- AI+醫藥6大場景解析,緊跟風口的醫藥行業引領者都在做什麼?AI行業
- 數字先鋒 | 牽手中資醫療醫藥,開創醫療醫藥應急保障服務新格局
- 哈爾濱醫科大學藥物轉錄組學實驗
- 清華大學:中國醫藥產業創新發展報告(附183頁下載)產業
- 醫藥行業肝病用藥全景圖:肝病大國,不容忽視的海量市場(附下載)行業
- 華為雲釋出醫療健康解決方案,盤古大模型賦能五大醫藥健康場景大模型
- 醫藥WMS系統的功能特性
- 醫藥供應鏈管理系統
- 京東與安徽華源醫藥達成戰略合作,共促醫藥物流行業發展行業
- 數字醫藥系統搭建|智慧藥房系統原始碼原始碼
- 討教大學|用流通合格率思維計算醫藥行業生產完成率行業
- 廣州市生物醫藥及高階醫療器械產業鏈大會暨聯盟會員大會召開產業
- 精確屬性控制,湖大、西電從頭藥物設計AI方法,登Nature子刊AI
- 關於天津哪裡可以開藥品醫藥費發票
- 關於廣州哪裡可以開藥品醫藥費發票
- 關於深圳哪裡可以開藥品醫藥費發票
- 中國醫藥企業管理協會: 2022年中國醫藥工業經濟執行報告
- 醫療行業如何來運營連鎖醫藥小程式||智慧醫療開發行業
- 山東科技大學OJ題庫 1403 它滿足條件嗎?
- ArcaneFire:2022年大中華區醫藥行業薪酬報告(附下載)行業
- 醫藥行業SaaS進銷存管理系統助力醫藥智慧化升級,提升企業核心競爭力行業
- 數商雲製藥醫藥供應鏈erp管理系統解決方案
- 小到牛皮癬,大到治癌症,免疫療法藥物研發有機器學習幫忙機器學習
- OJ搭建
- 智慧醫藥商城在藥店系統原始碼開發趨勢下的“新生”原始碼
- 人工智慧遇上新藥研發,它能給醫藥行業帶來什麼?人工智慧行業
- 輝瑞、BMS、阿斯利康等大型醫藥公司,如何使用AI加速藥物研發?AI
- 山東科技大學OJ題庫 1009-簡單的打折計算
- 醫藥電商:一箇中心、兩大產品、三種經營模式(附下載)模式
- MAGNA Media Trials:醫藥資訊的有效性
- Brand Finance:2023年中國醫藥榜單NaN
- 淺談醫藥行業郵件營銷方案行業
- AI系統有助突破醫藥研發瓶頸AI
- 平安國際智慧城醫藥部-內推招聘
- 亞虹醫藥診斷藥物海克威完成真實世界研究臨床試驗首例患者用藥