C語言藍(lán)橋杯題目?jī)傻?/h1>
- Description: 密碼發(fā)生器
- 在對(duì)銀行賬戶等重要權(quán)限設(shè)置密碼的時(shí)候,我們常常遇到這樣的煩惱:如果為了好記用生日吧,容易被破解,不安全;如果設(shè)置不好記的密碼,又擔(dān)心自己也會(huì)忘記;如果寫在紙上,擔(dān)心紙張被別人發(fā)現(xiàn)或弄丟了...
- 這個(gè)程序的任務(wù)就是把一串拼音字母轉(zhuǎn)換為6位數(shù)字(密碼)。我們可以使用任何好記的拼音串(比如名字,王喜明,就寫:wangximing)作為輸入,程序輸出6位數(shù)字。 變換的過程如下:
- 第一步. 把字符串6個(gè)一組折疊起來,比如wangximing則變?yōu)椋?nbsp;
- wangxi ming
- 第二步. 把所有垂直在同一個(gè)位置的字符的ascii碼值相加,得出6個(gè)數(shù)字,如上面的例子,則得出:
- 228 202 220 206 120 105
- 第三步. 再把每個(gè)數(shù)字“縮位”處理:就是把每個(gè)位的數(shù)字相加,得出的數(shù)字如果不是一位數(shù)字,就再縮位,直到變成一位數(shù)字為止。例如: 228 => 2+2+8=12 => 1+2=3 上面的數(shù)字縮位后變?yōu)椋?44836, 這就是程序最終的輸出結(jié)果! 要求程序從標(biāo)準(zhǔn)輸入接收數(shù)據(jù),在標(biāo)準(zhǔn)輸出上輸出結(jié)果。
- 輸入格式為:第一行是一個(gè)整數(shù)n(<100),表示下邊有多少輸入行,接下來是n行字符串,就是等待變換的字符串。
- 輸出格式為:n行變換后的6位密碼。
- 例如,輸入: 5
- zhangfeng wangximing
- jiujingfazi
- woaibeijingtiananmen haohaoxuexi
- 則輸出: 772243 344836 297332 716652 875843
- Fuction List:
- ************************************************************/
- #include <stdio.h>
- #include <string.h>
- int reduction(int m)
- {
- int k = 0;
- if (m<10)
- {
- return m;
- }
- while(m)
- {
- k += m%10;
- m /= 10;
- }
- return reduction(k);
- }
- void f(char s[],char x[])
- {
- int i,j,n,k;
- n = strlen(s);
- for (i=0; i<6; i++)
- {
- for (k=0,j=i; j<n; j+=6)
- {
- k += s[j];
- }
- x[i] = reduction(k) + '0';
- }
- x[6] = '\n';
- }
- int main()
- {
- char s[100] = {"wangximing"};
- char t[10000] = {""};
- int len = 0;
- int n; // 有n行密碼
- scanf ("%d",&n);
- while (n)
- {
- n--;
- scanf ("%s",s);
- f(s,t+len);
- len += 7;
- }
- t[len-1] = '\0';
- puts(t);
- return 0;
- }
- /**********************************************************
- File Name:
- Description: 4.取球游戲
- 今盒子里有n個(gè)小球,A、B兩人輪流從盒中取球,
- 每個(gè)人都可以看到另一個(gè)人取了多少個(gè),也可以
- 看到盒中還剩下多少個(gè),并且兩人都很聰明,不
- 會(huì)做出錯(cuò)誤的判斷。
- 我們約定:
- 每個(gè)人從盒子中取出的球的數(shù)目必須是:1,3,7或者8個(gè)。
- 輪到某一方取球時(shí)不能棄權(quán)!
- A先取球,然后雙方交替取球,直到取完。
- 被迫拿到最后一個(gè)球的一方為負(fù)方(輸方)
- 請(qǐng)編程確定出在雙方都不判斷失誤的情況下,對(duì)于特定的初始球數(shù),A是否能贏?
- Fuction List:
- ************************************************************/
- #include <stdio.h>
- int main()
- {
- int a[16] = {0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1};
- int n[10001];
- int j[10001];
- int m;
- int i;
- int temp;
- scanf("%d",&m);
- for(i = 0; i < m; i++)
- {
- scanf("%d",&n[i]);
- temp = n[i] % 15;
- j[i] = a[temp-1];
- }
- for (i = 0; i < m; i++)
- {
- printf("%d\n",j[i]);
- }
- return 0;
- }
編輯:admin 最后修改時(shí)間:2018-05-18