如题所述
æè·¯ä¸ï¼å°±æ¯å ä»ä¸ä¸ªå ç´ å¼å§ï¼è®¤å®è¿ä¸ªæ¯æå¤çï¼åæ¶åºç°æ¬¡æ°ä¸º1.
ç¶å计ç®ä¸¤ä¸ªå ç´ æ¶çæ åµï¼ä¸ä¸ä¸ªå ç´ å¦æåå½åæå¤æ¬¡æ°å¼ç¸åï¼é£ä¹åºç°æ¬¡æ°å ä¸ï¼å¦åå¨å½åè§æ¨¡æ°ç»å ç»è®¡ä¸ªæ°ï¼å¦è¶ è¿å½åæ大å¼ï¼åæ¿æ¢å¼å次æ°ã
ç´å°è§æ¨¡æ©å¤§å°å½å个æ°ä¸æ»é¿åº¦ç¸ç为æ¢ã
åè¿æ¥çè¿ç¨å°±æ¯éå½äºï¼
对äºn个å ç´ çæ°ç»ï¼æ±å¾n-1个å ç´ ä¸åºç°æå¤çæ°å¼åé¢åº¦ï¼å¦æ第n个å ç´ ä¸n-1个ä¸çæå¤çå¼ç¸åï¼é£ä¹è¿ä¸ªå°±æ¯è¦æ±çå¼ï¼å¹¶æ¬¡æ°å 1. å¦å计ç®ç¬¬n个æ°åºç°ç次æ°ï¼å¹¶ä¸n-1ä¸æå¤çæ°åºç°æ¬¡æ°å¯¹æ¯ã
代ç ï¼
#include <stdio.h>void find(int *a, int l, int *max, int *value)
{
if(l == 1)
{
*max = 1;
*value = a[0];
return;
}
find(a,l-1, max, value);
if(a[l-1] == *value) *max++;
else
{
int i, cnt = 1;
for(i = 0;i<l-1; i ++)
if(a[i] == a[l-1])cnt++;
if(*max < cnt)
{
*max = cnt;
*value = a[l-1];
}
}
}
int main()
{
int a[100];
int n,i;
int max,value;
scanf("%d",&n);
for(i = 0; i < n; i ++)
scanf("%d", &a[i]);
find(a, n, &max, &value);
printf("the item which has the max times is %d\n", value);
return 0;
}追é®
è¿è¡ä¸å¯¹åãè¾åºçæ°¸è¿æ¯ç¬¬ä¸ä¸ªè¾å ¥çæ°
追çä½ æ¯æä¹è¾å ¥çï¼
è¿ä¸ªç¨åºè¦æ±å è¾å ¥ä¸ä¸ªæ»æ°ï¼åè¾å ¥æ¯ä¸ªæ°ã
æè¿è¾¹è¿è¡æ¯æ£å¸¸ç
æ¯å¦
101 2 2 3 3 3 4 44 4 4
the item which has the max times is 37
1 1 1 2 2 2 2
the item which has the max times is 2追é®
å¯¹å¦ æåéäº😭